郵箱的正則表示式詳解
常用正則表示式—郵箱(Email)
本文針對有一點正則基礎的同學,如果你對正則一無所知,請移步“正則表示式30分鐘入門教程”學習。
要驗證一個字串是否為郵箱的話,首先要了解郵箱賬號的格式。我嘗試過在網上找出一個標準的格式,但是很遺憾我沒有找到。我也嘗試使用RFC標準來判斷郵箱的格式,但是也沒有結果。網上些部落格說不應該使用RFC標準來驗證郵箱是否合法,有興趣的可以看看“is this email valid?”和“Don’t RFC-Validate Email Addresses”。據瞭解【參考】,現在用中文命名的郵箱也合法了,比如“楊元慶@聯想.中國”。
雖然沒有統一的郵箱賬號格式,但是所有郵箱都符合“名稱@域名”的規律。對於名稱和域名的字元限制,我們可以根據專案的情況定義一個,比如只允許有英文、數字、下劃線等組成。下面舉例實現一些驗證郵箱格式的正則表示式。
例項1、只允許英文字母、數字、下劃線、英文句號、以及中劃線組成
舉例:[email protected]
分析郵件名稱部分:
- 26個大小寫英文字母表示為
a-zA-Z
- 數字表示為
0-9
- 下劃線表示為
_
- 中劃線表示為
-
- 由於名稱是由若干個字母、數字、下劃線和中劃線組成,所以需要用到
+
表示多次出現
根據以上條件得出郵件名稱表示式:[a-zA-Z0-9_-]+
分析域名部分:
一般域名的規律為“[N級域名][三級域名.]二級域名.頂級域名”,比如“qq.com”、“www.qq.com”、“mp.weixin.qq.com”、“12-34.com.cn”,分析可得域名類似“**
.**
.**
.**
”組成。
- “**”部分可以表示為
[a-zA-Z0-9_-]+
- “.**”部分可以表示為
\.[a-zA-Z0-9_-]+
- 多個“.**”可以表示為
(\.[a-zA-Z0-9_-]+)+
綜上所述,域名部分可以表示為[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+
最終表示式:
由於郵箱的基本格式為“名稱@域名”,需要使用“^”匹配郵箱的開始部分,用“$”匹配郵箱結束部分以保證郵箱前後不能有其他字元,所以最終郵箱的正則表示式為:
^[a-zA-Z0-9_-][email protected][a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
例項2、名稱允許漢字、字母、數字,域名只允許英文域名
舉例:楊元慶[email protected]
分析郵件名稱部分:
- 漢字在正則表示為
[\u4e00-\u9fa5]
- 字母和數字表示為
A-Za-z0-9
通過分析得出郵件名稱部分表示式為[A-Za-z0-9\u4e00-\u9fa5]+
分析郵件域名部分
郵件部分可以參考例項1
中的分析域名部分
。
得出域名部分的表示式為[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+
。
最終表示式:
我們用@符號將郵箱的名稱和域名拼接起來,因此完整的郵箱表示式為
^[A-Za-z0-9\u4e00-\u9fa5][email protected][a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
其他的郵箱正則匹配表示式:
/^[\w.+-][email protected][\w-]+(\.[\w-]+)+$/
相關推薦
JS中正則表示式詳解及最基本的判斷手機號,郵箱,身份證
首先最基本的符號型別及含義整理一下。 1,最基本的符號:^ $ * + ? ^ 代表字串的開始位置 &nbs
郵箱的正則表示式詳解
常用正則表示式—郵箱(Email) 本文針對有一點正則基礎的同學,如果你對正則一無所知,請移步“正則表示式30分鐘入門教程”學習。 要驗證一個字串是否為郵箱的話,首先要了解郵箱賬號的格式。我嘗試過在網上找出一個標準的格式,但是很遺憾我沒有找到。我也嘗試使用RFC標準來判斷郵箱的格式,但是也沒有結果。網上些部落
php 中正則表示式詳解
概述 正則表示式是一種描述字串結果的語法規則,是一個特定的格式化模式,可以匹配、替換、擷取匹配的字串。常用的語言基本上都有正則表示式,如JavaScript、java等。其實,只有瞭解一種語言的正則使用,其他語言的正則使用起來,就相對簡單些。文字主要圍繞解決下面問題展開。 有哪些常用的
正則表示式詳解(貪婪與懶惰、前瞻與後顧、後向引用等)
之前嫌正則麻煩,一直沒有深入去了解過正則,能不用的地方就不使用。 最近專案中遇到了不可避免的正則使用,所以花了點時間去了解並整理了一下,理解不一定完全準確,如有不對歡迎指出,希望對大家有所幫助。 一、名詞解釋 首先我們瞭解幾個名詞:元字元 、 普通字元、列印字元、非列印字元、 限定符 、定位符、非列
正則表示式詳解及實戰
Create by jsliang on 2018-11-14 10:41:20 Recently revised in 2018-11-19 09:04:18 Hello 小夥伴們,如果覺得本文還不錯,記得給個 star,你們的 star 是我學習的動力!GitHub 地址 正則表
python正則表示式詳解(二):特殊字元序列
內容提要: 說明:僅供學習交流使用 二、python正則表示式中的特殊字元序列 \number \A \Z \b \B \d \D \s \S \w \W \\ 2.1\number 以相同的序號代表的組所匹配的內容
C語言正則表示式詳解
標準的C和C++都不支援正則表示式,但有一些函式庫可以輔助C/C++程式設計師完成這一功能,其中最著名的當數Philip Hazel的Perl-Compatible Regular Expression庫,許多Linux發行版本都帶有這個函式庫。 C語言處理正則表示式常用的函
正則表示式詳解
一、校驗數字的表示式 1 數字:^[0-9]*$ 2 n位的數字:^\d{n}$ 3 至少n位的數字:^\d{n,}$ 4 m-n位的數字:^\d{m,n}$ 5 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 6 非零開頭的最多帶
正則表示式詳解/大全
正則表示式 前端往往有大量的資料效驗工作,可以通過正則表示式提高工作效率。 修飾符: i 不區分大小寫 g 全域性查詢 m 多行查詢 方法: test() 根據正則表示式規範判斷某個字串是否符合該正則規範,返回一個布林值 用法:reg.test(str
SQL---模糊查詢與正則表示式詳解和對比
1:模糊查詢 在進行資料庫查詢的時候,有完整查詢和模糊查詢之分; 完整查詢就是我們平時查詢的普通語句(對某個查詢條件確定的前提下),而模糊查詢就是常見的where 後面增加了 like 關鍵字。 一般模糊查詢語句如下: select 欄位 from 表 where 某欄位 l
js 正則表示式詳解
開篇,還是得說說 ^ 和 $ 他們是分別用來匹配字串的開始和結束,以下分別舉例說明 "^The": 開頭一定要有"The"字串; "of despair$": 結尾一定要有"of despair" 的字串; 那麼,
Linux--正則表示式--詳解
原文地址: https://www.cnblogs.com/hfutwyy/p/3415577.html 轉載請註明原文出處 一.linux文字查詢命令 在說linux正規表示式之前,還介紹下linux中查詢文字檔案常用的三個命令: 1.grep : 最早的文字
python 正則表示式 詳解
原文作者:A.M. Kuchling ([email protected]) 翻譯人員:FireHare 校對人員:Leal 適用版本:Python 1.5 及後續版本 摘要 本文是通過Python的 re 模組來使用正則表示式的一個入門教程,和庫參考手冊的對應章節相比,更為淺顯易懂、循序漸
【轉載】Python正則表示式詳解
原文地址:http://blog.csdn.net/whycadi/archive/2008/01/02/2011046.aspx 1. Python 正則式的基本用法 1.1 基本規則 1.2 重複 1
hive 正則表示式詳解
hive中的正則表示式還是很強大的。資料工作者平時也離不開正則表示式。對此,特意做了個hive正則表示式的小結。所有程式碼都經過親測,正常執行。 1.regexp 語法: A REGEXP B 操作型別: strings 描述: 功能與RLIKE
Java學習系列(二十四)Java正則表示式詳解
前言 正則表示式可以說是用來處理字串的一把利器,它是一個專門匹配n個字串的字串模板,本質是查詢和替換。在例項演示之前先了解一下Pattern、Matcher這兩個工具類,Pattern:編譯好的帶匹配的模板(如:Pattern.compile("[a-z]{2}")
java正則表示式詳解(匹配、切割和替換)
正則表示式:符合一定規則的表示式。作用:用於專門操作字串。特點:用於一些特定的符號來表示一些程式碼操作,這樣就簡化書寫。所以學習正則表示式,就是在學習一些特殊符號的使用。好處:可以簡化對字串的複雜操作。弊端:符號定義越多,正則越長,閱讀性越差。 具體操作功能: 1,匹配:
【2017-11+10】 JS中正則表示式詳解
在JS的開發過程中,很多時候都需要驗證表單的正確性;使用正則表示式能夠很好的簡化表單的驗證過程。 在JS中,內建了 RegExp 物件,用來進行正則匹配。 一. RegExp 物件的使用
爬蟲筆記(六)——如何寫正則表示式詳解
什麼是正則表示式? 正則表示式(Regular Expression)是一種文字模式,在編寫處理字串的程式或網頁時,經常會有查詢符合某些規則的字串的需求。正則表示式就是用於描述這些規則的工具,換句話說,正則表示式就是記錄文字規則的程式碼。我們將分別從原子、元子符、模式修
HIVE之正則化詳解
div case details class null false TP CA hive 有大神寫的很好了,我借花獻佛,有興趣,看鏈接,在此不再贅述。想要學習Hive正則表達式重點應該是正則表達式的表示方式,只有正則表達式使用溜了,hive正則那就是小case. 附參考博文