正則正則
^ 匹配行或字符的開頭
$ 匹配行或字符的結尾
\b 匹配單詞的邊界
\w 匹配字母,數字或下劃線
\d digital
\s space
. 除換行符的所有字符
大寫 取反
“\W” 匹配任意不是字母,數字,下劃線 的字符
“\S” 匹配任意不是空白符的字符
“\D” 匹配任意非數字的字符
“\B” 匹配不是單詞開頭或結束的位置
[] [0-9] or [abc] 順序或所有的
[^abc] 匹配除了abc 的所有符號
數量
* 0- 無窮
+ 1- 無窮
? 0 或 1
{n} n 次
{n,m} n 到 m 次
{n,} 至少n 次
2.4 懶惰限定符
“*?” 重複任意次,但儘可能少重複
如 “acbacb” 正則 “a.*?b” 只會取到第一個”acb” 原本可以全部取到但加了限定符後,只會匹配儘可能少的字符 ,而”acbacb”最少字符的結果就是”acb”
“+?” 重複1次或更多次,但儘可能少重複
與上面一樣,只是至少要重複1次
“??” 重複0次或1次,但儘可能少重複
如 “aaacb” 正則 “a.??b” 只會取到最後的三個字符”acb”
“{n,m}?” 重複n到m次,但儘可能少重複
如 "aaaaaaaa" 正則 "a{0,m}" 因爲最少是0次所以取到結果爲空
“{n,}?” 重複n次以上,但儘可能少重複
如 "aaaaaaa" 正則 "a{1,}" 最少是1次所以取到結果爲 "a"
| 或
() 捕獲分組
?! 非
“(exp)” 匹配exp,並捕獲文本到自動命名的組裏
“(?exp)” 匹配exp,並捕獲文本到名稱爲name的組裏
“(?:exp)” 匹配exp,不捕獲匹配的文本,也不給此分組分配組號
以下爲零寬斷言
“(?=exp)” 匹配exp前面的位置
如 “How are you doing” 正則”(?.+(?=ing))” 這裏取ing前所有的字符,並定義了一個捕獲分組名字爲 “txt” 而”txt”這個組裏的值爲”How are you do”;
“(?<=exp)” 匹配exp後面的位置
如 “How are you doing” 正則”(?(?<=How).+)” 這裏取”How”之後所有的字符,並定義了一個捕獲分組名字爲 “txt” 而”txt”這個組裏的值爲” are you doing”;
“(?!exp)” 匹配後面跟的不是exp的位置
如 “123abc” 正則 “\d{3}(?!\d)”匹配3位數字後非數字的結果
“(?