正则表达式的使用

简单介绍一下正则表达式相关知识(内容主要从这里提取的)。正则表达式就是记录文本规则的代码。

元字符

常见的元字符有. ,*,?,\d,\s,\w,\b,+,$,^等。.匹配换行符以外的任意字符,表示它前面的内容可以连续使用任意次,他俩连在一块就表示不包含换行符的任意字符串,?表示重复零次或一次,\d匹配一位数字,\s匹配任意的空白符,\w匹配字母或数字或下划线或汉字等,\b匹配单词的开始或结束,+匹配1次或任意次。$匹配字符串的结束。.^匹配字符串的开始。

举个简单的例子,^\d{6,12}$匹配以数字开头,长度大于6,小于12的数字串。

重复

.,*,+,{2},{6,12}都表示重复的方式

字符类

用[]表示,[aeiou]匹配任意一个元音字母,[0-9]等同于\d.

分歧条件

用|符号把不同的规则分隔开,满足一个规则就符合规则。

分组

如果我们想要重复多个字符,可以用小括号指定子表达式,叫做分组。

反义

\W,\S,\D等,\W匹配任意不是字母数字下划线汉字的字符,\S匹配任意不是空白字符的字符,\D匹配任意非字符的字符

后向引用

在匹配的规则的表达式中,如果包含分组,就自动会从左到右给分组一个序号,用\1,\2表示。在表达式或其他程序中可以用\1来引用这些分组而不用重复的编写规则。

零宽断言

匹配某些内容之前或之后的字符串,(?=exp)匹配exp前面的部分,(?<=exp)匹配exp后面的部分,这两种匹配 的结果都不包含exp本身。

负向零宽断言

表示断言此位置之前或之后不能出现exp,其中(?!exp)表示之后不能出现exp,(?<!exp)表示之前不能出现exp。

贪婪与懒惰

直接用例子来说明比较方便,例如,表达式a.*b匹配字母a和b之间的内容,默认情况下会匹配尽可能多的字符,例如aabaab,会匹配得到aabaab,而如果在表达式之后加上一个?,就会匹配最短的内容,a.*?b再次来匹配时,就会得到ab,ab


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值