什么是正則表達式:用來在一段不定字符、不定長度、具有簡單規律的字符串中進行字符匹配的按照一定結構書寫的表達式
什么事子表達式:'()' 代表一個子表達式,將其中的內容視為一個整體進行處理。
子表達式是一個大的表達式的一部分,把一個表達式划分為多個子表達式的目的是為了把那些子表達式當作一個獨立的元素來使用。子表達式必須用(和)括起來。
子表達式中可以嵌套子表達式,理論上可以無限嵌套。
子表達式中可以嵌套中表達式,將嵌套的所有中表達式作為一個整體進行匹配,同時滿所有個中表達式條件即為匹配成功。
什么是中表達式:'[]' 代表一個中表達式,將其中內容於字符串中每一個字符進行匹配,匹配條件為 '[]' 中的內容。
中表達式中可以嵌套子表達式,將嵌套的子表達式作為條件進行匹配,滿足任意一個子表達式中的條件即為匹配成功。
什么事大表達式:'{}' 代表一個大表達式,將其中內容於字符串進行匹配,用於長度匹配
'{a,b}' 取前方一個子表達式(或一個字符)。當出現第 a 此后,開始從第一次出現的位置匹配,每次匹配長度為 b
'{a,}' 取前方一個子表達式(或一個字符)。當出現第 a 此后,開始從第一次出現的位置匹配,每次匹配至不滿足條件
'{a}' 取前方一個子表達式(或一個字符)。當出現第 a 此后,開始從第一次出現的位置匹配,每次匹配長度為 a
文本:Your operation systemis Windows 2000.
正則表達式:nbsp;{2,}
結果:Your operation systemis Windows 2000.
分析:這里使用模式想匹配2個或2個以上的非換行空格,但是從結果可以看出,沒有匹配到任何東西,因為nbsp;{2,}這個模式只能匹配到像nbsp;;;;;;;這樣以nbsp開頭,2個或2個以上連續分號的文本。因為重復匹配都是緊挨着重復匹配元字符之前的那個字符的多次重復。
正則表達式:(nbsp;){2,}
分析:將 (nbsp;) 作為一個整體進行匹配,條件為 (nbsp;) 連續兩次出現。
文本:1988-03-11
正則表達式:[0-9][0-9]
分析:
中表達式 [0-9] :匹配 '0-9' 中所有數字
[0-9][0-9]:同時兩項滿足 '0-9'
合並起來即為:匹配字符串中,條件為 '0-9' 的連續兩項
結果:19 88 03 11
文本:1988-03-11
正則表達式:[0-9]|[0-9]
分析:
中表達式 [0-9] :匹配 '0-9' 中所有數字
|:或符號
合並起來即為:匹配字符串中,條件為 '0-9' 或 '0-9' 的所有項
結果:1 9 8 8 0 3 1 1
文本:1988-03-11
正則表達式:(19|20)\d{2}
分析:
子表達式 (19|20) :滿足開頭為 '19' 或 '20' 的匹配項
\d:匹配所有數字
{2}:前一個表達式連續兩次出現
合並起來即為:匹配字符串中,條件為 '19' 或 '20' 開頭且連續出現兩次的所有數字項
結果:1988