原創(chuàng)文章,轉(zhuǎn)載請注明出處
正則表達式(1)---語法講解
正則表達式(2)---匹配規(guī)則
正則表達式(3)---運算符優(yōu)先級
正則表達式(4)----常用的正則表達式
前言
上一節(jié),對于正則的表達式的匹配規(guī)則做了相應(yīng)的講解。對于閱讀正則表達式有了很好的提升。但是,與一般語言運算符相對比,正則表達式的運算符也是相當(dāng)多,那么如何分辨他們的優(yōu)先級。這里我們貼出一個非常復(fù)雜的模式:
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?//本表達式功能用來匹配郵箱地址
運算符
由于在第一章正則表達式(1)---語法講解中運算符處在不同的功能項目中,我們沒有統(tǒng)一制作成表格,這里將第一章中出現(xiàn)的運算符統(tǒng)計如下:
運算符 | 描述 |
---|---|
\ | 轉(zhuǎn)義符 |
(), (?:), (?=), [] | 圓括號和方括號 |
*, +, ?, {n}, {n,}, {n,m} | 限定符 |
^, $, \任何元字符、任何字符 | 定位點和序列(即:位置和順序) |
| | 替換,"或"操作"字符具有高于替換運算符的優(yōu)先級,使得"m|food"匹配"m"或"food"。若要匹配"mood"或"food",請使用括號創(chuàng)建子表達式,從而產(chǎn)生"(m|f)ood"。 |
上面的運算符的優(yōu)先級由高到低,我們在查看正則表達式的時候
可以按照這個順序來閱讀。
閱讀思路
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
其中@是郵箱的標(biāo)識,這里對前后內(nèi)容進行拆分
[\w!#$%&'*+/=?^`{|}~-]+(?:\.[\w!#%&'*+/=?^`{|}~-]限制字符格式,再拆分
\w 匹配包括下劃線的任何單詞字符。等價于'[A-Za-z0-9_]'
這個模式可以解釋成支持!#$%&'*+/=?^_`{|}~-這些符號外,也支持所有的單詞和數(shù)字。+ 匹配前面的子表達式一次或多次。
也就代表郵箱的開頭必須是數(shù)字或限定內(nèi)的特殊字符(?:pattern) 匹配 pattern 但不獲取匹配結(jié)果,也就是說這是一個非獲取匹配,不進行存儲供以后使用。這在使用 "或" 字符 (|) 來組合一個模式的各個部分是很有用。
* 匹配前面的子表達式零次或多次。
(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*這里可以翻譯成支持帶/和任何參數(shù)
@后面的可以按照這也原理解讀。
到這里,運算符的優(yōu)先級解釋也已經(jīng)結(jié)束。多謝大家支持。后面章節(jié)會貼出許多常用的正則表達式,供大家學(xué)習(xí)。