关于正则表达式:正则表达式速查

正则表达式速查

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

罕用代码

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

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

量词

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

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

字符

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

分组

(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) 后果:空

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理