正则表达式一些知识整理

两年刚开始学习正则表达式的时候做的一些笔记,之前需要处理一些数据去学习正则的应用,现在太久没有使用有些遗忘了,可能可以给刚学习正则的同学一些帮助

常用元字符

.          匹配除换行符以外的任意字符
\w         匹配字母、数字、下划线、汉字(实际使用汉字效果不好)
\s         匹配任意空白符(空格)
\d         匹配数字
\b         匹配单词开始或结束
^          匹配字符串的开始
$          匹配字符串的结束

常用限定符

*           重复0次或很多次
+           重复1次或很多次
?           重复0次或1次
{n}         重复n次
{n,}        重复n次或很多次
{n,m}       重复n到m次

常用反义字符

\W            匹配非字母、数字、下划线、汉字
\S            匹配非任意空白符(空格)
\D            匹配非数字
\B            匹配非单词开始或结束
[^x]          匹配除x以外的任意字符
[^aeiou]      匹配除元音以外的任意字符

懒惰限定符

*?           重复0次或很多次,但尽可能少重复
+?           重复1次或很多次,但尽可能少重复
??           重复0次或1次,但尽可能少重复
{n,m}?       重复n到m次,但尽可能少重复
{n,}?        重复n次以上,但尽可能少重复

分组

(exp            匹配exp,并捕获文本到自动命名的组里
(?<name>exp)    匹配exp,并匹配文本到名称为name的组里

零宽断言

(?=exp)          匹配exp前面的位置(放后面)
(?!exp)          匹配不是exp前面的位置(放后面)
(?<=exp)         匹配exp后面的位置(放前面)
(?<!exp)         匹配不是exp后面的位置(放前面)

零宽断言和[]字符集的区别

匹配dacing
若只要后缀为ing单词前的字符,则需要使用零宽断言
\w+(?=ing)        匹配出来的是dac
\w+[ing]          匹配出来的是dacing
零宽表示不占位,断言表示true或false

常用的其他符号

\.          元字符转义
[]          字符集,例如[0123], [1-5], [a-z]
()          分组,匿名组,是以索引进行命名,第一个开始为1(注意)
|           分支,就是或(||)
//i         一次匹配,只匹配第一次
//g         全局匹配,全部都匹配
转载,请注明文章出处,谢谢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值