java提高(2)---正則表達式(1)常用符號


正則表達式---常用符號

  首先聲明,我這里列表的是經常使用的一些符號,如果你想得到全部,那建議你通過API中,搜索Pattern類,會得到所有符號。

 

字符類
[abc] abc(簡單類)
[^abc] 任何字符,除了 abc(否定)
[a-zA-Z] azAZ,兩頭的字母包括在內(范圍)
[a-d[m-p]] admp[a-dm-p](並集)
[a-z&&[def]] def(交集)
[a-z&&[^bc]] az,除了 bc[ad-z](減去)
[a-z&&[^m-p]] az,而非 mp[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 的數字字符串。

注意:關於() [] {}區別,如果你還沒用明白的話,也沒有關系,這兩天我還會寫正則表達式類文章,到時候我會用列子說明。

這篇文章就到這里結束了,如果個別地方寫的不對或者還可以補充地方,歡迎大家指出我會立即更正的,也歡迎大家做出點評,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM