正則表達式---常用符號
首先聲明,我這里列表的是經常使用的一些符號,如果你想得到全部,那建議你通過API中,搜索Pattern類,會得到所有符號。
字符類 | |
---|---|
[abc] | a、b 或 c(簡單類) |
[^abc] | 任何字符,除了 a、b 或 c(否定) |
[a-zA-Z] | a 到 z 或 A 到 Z,兩頭的字母包括在內(范圍) |
[a-d[m-p]] | a 到 d 或 m 到 p:[a-dm-p](並集) |
[a-z&&[def]] | d、e 或 f(交集) |
[a-z&&[^bc]] | a 到 z,除了 b 和 c:[ad-z](減去) |
[a-z&&[^m-p]] | a 到 z,而非 m 到 p:[a-lq-z](減去) |
預定義字符類 | |
---|---|
. | 任何字符(與行結束符可能匹配也可能不匹配) |
\d | 數字:[0-9] |
\D | 非數字: [^0-9] |
\s | 空白字符:[ \t\n\x0B\f\r] |
\S | 非空白字符:[^\s] |
\w | 單詞字符:[a-zA-Z_0-9] |
\W | 非單詞字符:[^\w] |
邊界匹配器 | |
---|---|
^ | 行的開頭 |
$ | 行的結尾 |
\b | 單詞邊界 |
\B | 非單詞邊界 |
Greedy 數量詞 | |
---|---|
X? | X,一次或一次也沒有 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,恰好 n 次 |
X{n,} | X,至少 n 次 |
X{n,m} | X,至少 n 次,但是不超過 m 次 |
為了讓大家更加明白,對上面的進行部分解釋
元字 符 | 舉例 |
.點 | 例如正則表達式r.t匹配這些字符串:rat、rut、r t,但是不匹配root。 |
$ | 例如正則表達式weasel$ 能夠匹配字符串"He's a weasel"的末尾 但是不能匹配字符串"They are a bunch of weasels." |
^ | 匹配一行的開始。例如正則表達式^When in能夠匹配字符串"When in the"的開始,但是不能匹配"What and When in the" |
* | 匹配0或多個正好在它之前的那個字符。例如正則表達式。*意味着能夠匹配任意數量的任何字符。 |
\ | 這個是用來轉義用的。例如正則表達式\$被用來匹配美元符號,而不是行尾,類似的,正則表達式\.用來匹配點字符,而不是任何字符的通配符。 |
| | 將兩個匹配條件進行邏輯“或”(Or)運算。例如正則表達式(him|her) 匹配" to him"和"i to her",但是不能匹配" to them."。 |
+ | 匹配1或多個正好在它之前的那個字符。例如正則表達式9+匹配9、99、999等。 |
? | 匹配0或1個正好在它之前的那個字符。 |
{i} {i,j} |
例如正則表達式A[0-9]{3} 能夠匹配字符"A"后面跟着正好3個數字字符的串,例如A123、A348等,但是不匹配A1234。 而正則表達式[0-9]{4,6} 匹配連續的任意4個、5個或者6個數字字符。 |
最后講一個初學者很容易搞混的知識點
正則表達式的() [] {}的區別
() 是為了提取匹配的字符串。表達式中有幾個()就有幾個相應的匹配字符串。圓括號中的字符視為一個整體。
[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應位置的字符要匹配英文字符和數字。
{}一般用來表示匹配的長度,比如 \s{3} 表示匹配三個空格,\s[1,3]表示匹配一到三個空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數字(注意后面有 *,可以為空)[0-9]+ 匹配數字(注意后面有 +,不可以為空){1-9} 寫法錯誤。
[0-9]{0,9} 表示長度為 0 到 9 的數字字符串。
注意:關於() [] {}區別,如果你還沒用明白的話,也沒有關系,這兩天我還會寫正則表達式類文章,到時候我會用列子說明。
這篇文章就到這里結束了,如果個別地方寫的不對或者還可以補充地方,歡迎大家指出我會立即更正的,也歡迎大家做出點評,謝謝!