正則表達(dá)式2-留下你的郵箱

匹配郵箱

在《正則表達(dá)式1-字符串匹配種》,我們知道如何去匹配名稱了,現(xiàn)在來(lái)看看一個(gè)更復(fù)雜的例子,郵箱吧。

我們看一下這個(gè)郵箱的組成
405062429@qq.com

405062429是郵箱名稱,qq.com是域名。

點(diǎn)

我們?nèi)绾纹ヅ淠??看看這個(gè)行不行

'405062429@qq.com'.match(/\w+@\w+.\w+/)

好像可以,但是‘405062429@qq+com‘也能被匹配,這是因?yàn)槲覀冇玫搅?.'.

.在正則表達(dá)式中表示元字符(Metacharacter),是具有特殊含義的字符,表示查找單個(gè)字符,除了換行和行結(jié)束符。

在這里我們需要Escape the “.” with a backslash to match a literal period。使用.轉(zhuǎn)譯一下。
所以這樣寫吧:

'405062429@qq.com'.match(/\w+@\w+\.\w+/)

分組

我們郵箱的頂級(jí)域名(Top-level Domain)不一定是com怎么辦??纯聪旅孢@樣寫可以嗎?

/\w+@\w+\.com|net|org|edu/i

這樣的話并不能把com和net,org,edu放在一起,而是把\w+@\w+\.com和后面的域名放在一起了,顯然不對(duì),這時(shí)候就要用到分組。像下面這樣寫:

/\w+@\w+\.(com|net|org|edu)/i

部分匹配

上面這樣已經(jīng)可以工作的很好了,可是還是有部分匹配的問(wèn)題。比如'405062429@qq.comXXX'.match(/\w+@\w+\.(com|net|org|edu)/i)也會(huì)返回(我們希望精確匹配,這種情況應(yīng)該返回null)。

如何解決這個(gè)問(wèn)題呢:

/^\w+@\w+\.(com|net|org|edu)$/i

^表示在一行的開(kāi)頭就開(kāi)始匹配,start matching at the beginning of the line
$表示在一行的結(jié)尾結(jié)束匹配,stop matching at the end of the line

說(shuō)的明白點(diǎn)就是,比如/^shen$/,那么shen之前沒(méi)有任何東西,之后也沒(méi)有任何東西,那么就只能匹配shen。這樣就可以解決部分匹配的問(wèn)題了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS中使用正則表達(dá)式就不得不提NSRegularExpression,所以我們需要先搞清楚什么是NSRegula...
    sunmumu1222閱讀 2,484評(píng)論 0 4
  • 幾個(gè)正則表達(dá)式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:ht...
  • 推薦幾個(gè)正則表達(dá)式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1閱讀 11,865評(píng)論 9 151
  • 正則表達(dá)式到底是什么東西?字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位,可能是字母,數(shù)字,標(biāo)點(diǎn)符號(hào),空格,換行符,漢字等...
    獅子挽歌閱讀 2,300評(píng)論 0 9
  • 今天上午看完了一本書(shū),關(guān)于人際處事的,我想到了性格能輻射出一定的氣場(chǎng),使我們每個(gè)人找到相應(yīng)的同類。一般隱藏太深及太...
    范櫻閱讀 196評(píng)論 1 0

友情鏈接更多精彩內(nèi)容