正則表示式簡單說明
/**
* 正則表示式簡單說明
* 語法:
. 匹配除換行符以外的任意字元
\\w 匹配字母或數字或下劃線或漢字
\\s 匹配任意的空白符
\\d 匹配數字
\\b 匹配單詞的開始或結束
^ 匹配字串的開始
$ 匹配字串的結束
* 重複零次或更多次
+ 重複一次或更多次
? 重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次
\\W 匹配任意不是字母,數字,下劃線,漢字的字元
\\S 匹配任意不是空白符的字元
\\D 匹配任意非數字的字元
\\B 匹配不是單詞開頭或結束的位置
[^x] 匹配除了x以外的任意字元
[^aeiou]匹配除了aeiou這幾個字母以外的任意字元
*? 重複任意次,但儘可能少重複
+? 重複1次或更多次,但儘可能少重複
?? 重複0次或1次,但儘可能少重複
{n,m}? 重複n到m次,但儘可能少重複
{n,}? 重複n次以上,但儘可能少重複
\\a 報警字元(列印它的效果是電腦嘀一聲)
\\b 通常是單詞分界位置,但如果在字元類裡使用代表退格
\\t 製表符,Tab
\\r 回車
\\v 豎向製表符
\\f 換頁符
\\n 換行符
\\e Escape
\\0nn ASCII程式碼中八進位制程式碼為nn的字元
\\xnn ASCII程式碼中十六進位制程式碼為nn的字元
\\unnnn Unicode程式碼中十六進位制程式碼為nnnn的字元
\\cN ASCII控制字元。比如\\cC代表Ctrl+C
\\A 字串開頭(類似^,但不受處理多行選項的影響)
\\Z 字串結尾或行尾(不受處理多行選項的影響)
\\z 字串結尾(類似$,但不受處理多行選項的影響)
\\G 當前搜尋的開頭
\\p{name} Unicode中命名為name的字元類,例如\\p{IsGreek}
(?>exp) 貪婪子表示式
(?<x>-<y>exp) 平衡組
(?im-nsx:exp) 在子表示式exp中改變處理選項
(?im-nsx) 為表示式後面的部分改變處理選項
(?(exp)yes|no) 把exp當作零寬正向先行斷言,如果在這個位置能匹配,使用yes作為此組的表示式;否則使用no
(?(exp)yes) 同上,只是使用空表示式作為no
(?(name)yes|no) 如果命名為name的組捕獲到了內容,使用yes作為表示式;否則使用no
(?(name)yes) 同上,只是使用空表示式作為no
捕獲
(exp) 匹配exp,並捕獲文字到自動命名的組裡
(?<name>exp) 匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成(?'name'exp)
(?:exp) 匹配exp,不捕獲匹配的文字,也不給此分組分配組號
零寬斷言
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp後面的位置
(?!exp) 匹配後面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
註釋
(?#comment) 這種型別的分組不對正則表示式的處理產生任何影響,用於提供註釋讓人閱讀
*/