1.字面值匹配
默認區分大小寫:phone -> $0=phone
原樣匹配:\Q . ^ $ + ? | ( ) [ - ]{ } \E
轉義:\. [.] [\b]退格符
匹配修飾符(?x)(pattern): g全局,i:忽略大小寫,m:多行,s:單行
2.字符集與簡寫(大寫取反)
\d: [0-9] \w: [_a-zA-Z0-9] \s: [ \t\n\r]
3.數量詞
?: 0或1個 {m,n}: m-n個
*: 0或多個 +: 1或多個
4.斷言邊界
^...$: 一行開始和結束
\b: 零寬度單詞邊界
\A: 匹配文件頭
\Z: 匹配文件尾(\n之前)
\z: 匹配文件尾(EOF)
5.子模式
(t|T)h(eir|ere|e): $0=their; $1=t ; $2=eir $2依賴$1
6.分組
捕獲分組(pattern):\u\l(\U\L)使其後緊跟的串首字(全部)轉大小寫
直接引用(...)(...):$1 $2
命名引用(?<name>...):\k<name>或\g{one}
非捕獲分組(?:pattern)或者(?修飾符:pattern),因爲不保存分組,可以提高速度
原子分組(?>pattern),不捕獲且不回溯,提高性能
7.字符集
0-99的偶數:(?>\b[02468]\b)|(?>\b[123456789][02468]\b)
集取反:(?i)[^aeiou] ,特別的,在Java中可以對字符集進行像集合一樣的計算
8.匹配Unicode
\u00e9或\x{00e9} --十六進制
\u351或\351 --八進制
\cX控制符(x值有表)
\p{x}unicode屬性(x值有表)
9.量詞
貪心:儘可能匹配更多的內容(失敗就回溯) {m,n}默認貪心n個
懶惰:從左到右只要匹配成功,馬上停止 5*?,匹配0個5,即量詞後加?號
佔有:只匹配一次(一次嘗試匹配所有內容,所有內容儘量多,但不會回溯) {m,n}+,先嚐試n個
10.環視
前瞻:a(?=b) 找到所有後面跟b的a -- a(?!b)
後顧:(?<=a)b 找到所有前面有a的b -- (a<!a)b
【正則】正則表達式(0)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.