1. 程式人生 > >郵箱的正則表示式詳解

郵箱的正則表示式詳解

常用正則表示式—郵箱(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. 附參考博文