檢查Email格式是否合法的Regex__java

來源:互聯網
上載者:User

“^\\w+([-_.]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,6})+$”

這個是我在Java程式中檢查Email格式是否合法的Regex,在網上看到一篇博文,與我用的運算式類似,轉載過來,供大家一起學習。


------------------------------以下為轉載文章-----------------------------------


Regex(regular expression, 常常縮寫為RegExp) 是一種用特殊符號編寫的模式,描述一個或多個文本字串。使用Regex匹配文本的模式,這樣指令碼就可以輕鬆的識別和操作文本。其實,Regex是值得大家花時間學習的。Regex不僅在javaScript 中有用,在其他許多地方也可以使用Regex,例如其他程式設計語言(比如Perl,Java,C#,Python 和PHP ),Apache 設定檔以及BBEdit 和TextMate 等文字編輯器。甚至Adobe Dreamweaver 和Microsoft Word( 在一定程度上) 使用Regex也可以實現更強大的搜尋和替換。

下面是一個驗證電子郵件的Regex

var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ ;

下面我們開始剖析這個Regex

re 是一個變數, 用來儲存右邊的Regex,在javascript 中,聲明變數使用Var 關鍵字。

Regex的讀取順序是從左向右的

Regex總是以(/) 開頭和結尾,斜杠之間的所有內容都是Regex的組成部分。

脫字元(^) 表示我們要使用這個運算式來檢查以特定字串開頭的字串。如果去掉脫字元,那麼即使字串開頭有一堆垃圾字元,電子郵件地址也可能被認為是有效。

運算式\w 表示任意單一字元,包括a~z 、A~Z 、0~9 或底線。電子郵件必須這些字元之一開頭。

加號+ 表示我們要尋找前麵條目的一次或多次出現。

園括弧() 表示一個組,這意味著後面要引用圓括弧中的所有內容,所以現在將它們放在一個組中。

      放括弧[] 用來表示可以出現其中的任意一個字元。在這個樣本中,方括弧內包含字元\.- 。我們希望允許使用者輸入焦點號或連字號,但是點號對於Regex有特殊的意義,所以需要在它前面加上反斜線\, 在特殊字元前加反斜線表示“對字元轉義”,經轉義後的字元表示其本身意義。因為有方括弧,輸入字串在這個位置可以有一個點號或一個連字號,但是兩種不能同時存在。

      問號。表示前面的條目可以出現一次或不出現。所以電子郵件地址的第一部分中可以有一個點號或一個連字號,也可以沒有。

      在。後面,再次使用\w+ ,表示點號或連字號後面必須有其他字元。

在()後面出現的* 號,表示前面的條目可以出現零次或多次。所以圓括弧中的內容可以出現零次或多次。

@ 字元代表其本身,沒有任何其他意義,這個字元位於電子郵件地址和網域名稱之間。

@ 字元後再次出現\w+ ,表示@ 後必須出現字元。在此之後,再次出現([\.-]?\w+)*, 表示電子郵件地址的尾碼中允許出現點號或連字號。

      然後,在一對圓括弧中建立另一個組(\.\w{2,3}), 表示我們希望找到一個點號,後面跟一些字元。在這個樣本中,花括弧中的數字表示前面的條目可以出現2 到3 次。在這個組的後面是一個+ 號,表示前面的條目(這個組)必須出現一次或多次。這會匹配.com 或.edu 之類的,也與ox.ac.uk 匹配。

      最後,Regex的末尾是一個貨幣符號$ ,表示匹配的字串必須在這裡結束。斜杠結束Regex。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.