正则表达式 基础知识 备忘

相关概念:

1、什么是正则表达式?

描述字符串的规则的工具

1、元字符
字符作用
.除换行符之外的任意字符
\w字母、数字、下划线
\s空白符
\d任意数字
\b单词开始 或结束
^字符串开始
$字符串结束
2、字符转义

对于“ . ”、 “ * ” 、“ \ ” 等本身有特殊作用的字符的匹配,需在前面加斜杠\,如. * \

3、重复匹配
字符作用
?0或1次
+0或多次
*1或多次
{n}n次
{n,}n次及n次以上
{m,n}m次到n次
4、字符类 [ ]

特殊符号 :音标、罗马数字 空格 等 用 [< >aeiou] 中括号表示
[]里放1234abc等具体字符,如[0-9]等同于\d,-在这里表范围

5、分支条件(|: 匹配多种情况)

| 分隔多个条件

6、分组 即 子表达式 ()

圆括号包裹 ,匹配字符串重复的情况,
例如 ip 的匹配:

((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
7、反义 (匹配 非… 的情况)
注意是大写字母
字符作用
\W匹配不是字母、数字、下划线、汉字(.net有)
\S非空白符
\D非数字
\B非单词开始 或结束的位置
[^x]除x以外的字符
[^aeiou]除aeiou以外字符

匹配不含空格的字符串:\S+

7、捕获分组 与 后向引用 ()

()圆括号内包裹表达式,即为一个分组,匹配表达式的文本即为分组捕获内容,不指定分组名,会获得默认分组名:从左至右依次为1、2、3、4,指定分组名的组号都大于未命名分组

(\D\w+)                 \\未命名
(?<noNumStart>\D|w+)  \\命名为noNumStart 
(?:\D\w+)       \\匹配,但不捕获匹配的文本,不分配组号

分组匹配过一次,后面还要匹配 即可使用后向引用:

\b(\w+)\b\s+\1\b  不指定分组名
或
\b(?<test>\w+)\b\s+\k<test>\b  指定分组名
7、零宽断言
表达式含义称谓
(?=exp)匹配exp前面的位置零宽度正预测先行断言
(?<=exp)匹配exp后面的位置零宽度正回顾后发断言
(?!xp)匹配后面不是exp的位置零宽度负预测先行断言
(?<!exp)匹配前面不是exp的位置零宽度负回顾后发断言
7、注释

(?#comment):括号里的?#后面的为注释

参考网站:https://deerchao.net/tutorials/regex/regex.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值