1.不区分大小写的匹配
(?i)ascii
还有开关:
abc(?i)def(?-i)hij
(?i)和(?-i)之间的不区分大小写,适用于Java,不适用于Python
2.块转义
\Q %^&*%* \E
3.匹配开头结尾
开头:^abc 或者 \Aabc
结尾:abc$ 或者 abc\Z
可以用\A\Z匹配空串
4.词边界
\bcat\b \Bcat\B
5.捕获分组和非捕获分组
捕获:(abc)
非捕获:(?;abc)
6.反向引用:
匹配先前捕获到的文本,用\1代表第一个捕获组里的内容。例:
2008-08-08,2010-10-10
\b\d\d(\d\d)-\1-\1
7.命名捕获组
2002-2-2
\b(?<year>[0-9]{4}) Java
\b\d\d(?P<magic>\d\d)-(?P=magic)-(?P=magic)\b Python
不要混合使用命名捕获和编号捕获
8.懒惰
量词后+问号
*?、 +?、??、{7,42}?
本文深入探讨了正则表达式的高级应用,包括不区分大小写的匹配、块转义、匹配开头结尾、词边界、捕获分组和非捕获分组、反向引用、命名捕获组以及懒惰量词等特性。
1132

被折叠的 条评论
为什么被折叠?



