正则表达式速查

正则表达式默认为“贪心”,最大匹配;
在量词后加?可改为“非贪心”

罕用代码

匹配要求代码
任意汉字[u4e00-u9fa5]
Enter回车符rn

\r \n \r\n 理论利用中的区别 存疑

量词

量词位于字符前面,在搜寻时限度字符的数量

代码含意
{m}m个
{m,n}m到n个
*0到任意个
+1到任意个
?0到1个

字符

代码助记含意例句
....示意省略号任意字符(不包含换行符)
[A-Z]-[ ... ]示意区间中的任意字符
ddigit数字从0到9的数字
s Ssymbol符号s任意空白字符,S任意非空字符
w Wword单词w代表word,匹配字母、数字或下划线字符线,W是w的反集
( )示意子表达式
nnewline另一行换行符
rreturn回车回车符
^-字符开始,[ ]中的^示意逻辑非“¬”
$-字符完结
\-逻辑或

分组

(abc)? 示意0个或1个abc 这里一 个括号的表达式就示意一个分组 。

捕捉组

1.分组的编号

从左到右计算其开括号来编号

例:
表达式: (A)(B(C))

编号分组
0(A)(B(C))
1(A)
2(B(C))
3(C)

2.Back援用

反向援用,援用的是后面捕捉组中的文本而不是正则,也就是说反向援用处匹配的文本应和后面捕捉组中的文本雷同

例:字符串:帅哥123456帅锅---帅哥123456帅哥
表达式①:;后果:
表达式②:;后果:

3.分组列举

非捕捉组

以 (?) 结尾,不捕捉文本,不存在backref反相援用
代码含意例句
(?:Pattern)匹配Pattern字符字符串:indestry哈哈哈哈indestries 正则:indestr(y\ies)或者indestr(?:y\ies) 后果:indestry或者indestries
(?<=X)X ,通过零宽度的正 lookbehind字符串:name:wangfei 正则:(?<=name:)(wangfei) 后果:wangfei
(?=X)X ,通过零宽度的正 lookahead字符串:product_path 正则:(product)(?=_path) 后果:product
(?<!X)X ,通过零宽度的负 lookbehind字符串:name:angelica 正则:(?<!nick_name:)(angelica) 后果:angelica;
字符串:name:angelica 正则:(?<!name:)(angelica) 后果:空
(?!X)X ,通过零宽度的负 lookahead字符串:product_path 正则:(product)(?!_url) 后果:product;
字符串:product_path 正则:(product)(?!_path) 后果:空