正則表達式:
1. 元字符(*、?、+)和文字字符組成
2. #匹配的是一個位置
脫字符號(^) : 行開始
美元符號($) :
行結束
3. #匹配若干字符之一,字符間是‘或’關係,字符組內部和外部,元字符的定義和意義不同
#一個字符組只能匹配目標文本中的單個字符
字符組[]
連字符‘-’,在[]中間,表示範圍
4. 排除型字符組(不希望匹配的字符)
[^]
5. . 匹配任意字符的字符組
6.
多選結構,匹配任意子表達式 |, 可以匹配任意長度的文本(區別於字符組)
gr[ea]y、 gr(e|a)y意義相同,
gr[e|a]y中,|表示普通字符,和前兩者的意義不同
gre|ay表示gre或ay
7. java正則表達式:
(?i)abc 表示abc都忽略大小寫
a(?i)bc 表示bc忽略大小寫
a((?i)b)c
表示只有b忽略大小寫
8. 單詞分界符
#部分不支持\<、\>
\< 單詞的起始位置
\> 單詞的結束位置
\b
9. ? 表示可選項
u?:表示u可以出現一次也可以不出現
10. + 表示之前緊鄰的字符出現一次或多次
11. * 表示之前緊鄰的字符出現任意多次或不出現
12. 空格也是普通字符, ( 、)表示元字符
13. 重現次數的範圍:區間 {min,max}
14. 反向引用 表示匹配與表達式先前部分匹配的同樣的文本
([a-z])([0-9])\1\2 : \1表示[a-z]匹配的內容,\2表示[0-9]匹配的內容
15. \ + 元字符 表示對元字符進行轉義
16. (?:....)
表示只分組不捕獲,即非捕獲型括號
17.
\s 表示匹配所有'空白'
\S 除\s之外的任何字符
\r 回車符
\w [a-zA-Z0-9]
\W [^a-zA-Z0-9]
\d
\D
18.
正則表達式環視結構,不匹配任何字符,只匹配文本中的特定位置
肯定型順序環視 (?=...)
(?=\d) : 匹配當前位置的右邊是數字
逆序環視(?<=...),從右向左查看文本
(?<=\d),匹配當前位置的左邊有一位數字
否定順序環視(?!...)
子表達式不能匹配右側文本
否定逆序環視(?
19. (?<=\d)(?=(\d\d\d)+$) :
只有一個捕獲型括號即:(\d\d\d)
20. (?<=\d)(?=(\d\d\d)+$)\1
: \1即指捕獲型括號(\d\d\d)
21.
java中獲取第一組括號匹配的文本
matcher.group(1);
22.
條件判斷(?if then|else)
(?(?<=NUM:)\d+|w+) :
表示當前位置的左邊是NUM:時,則匹配後面跟一位數字,否則在其他位置嘗試使用\w
23.