正则表达式-完结

前言:内容包括正则表达式的子表达式,回溯引用,前后查找,嵌入条件,以及例子的拆分介绍。如果文字描述有问题可以评论指出,如果概念很模糊,可以加我微信,我会尽量解答你的疑惑。

子表达式

介绍:把一个表达式划分为多个子表达式,每个都是一个独立的元素,相关元字符()

正则:\d.\d.\d.\d

注:这只是一个匹配文本中ip的正则,对于,666.666.666.666这种非ip的数值,也是可以匹配到的。不过我们这里只是提取文本中的ip。要匹配正确的ip,可以自己尝试一下。

解析:\d 代表数字,出现1到3次,这个重复的表达式写了四次,但是毫无疑问,这个是能匹配到文本中的正确的ip的。但是这个看起来比较麻烦,这种情况其实我们就可以使用子表达式

利用子表达式:(\d\.)\d

利用子表达式正则解析:

(\d\.)表示这个(\d\.)重复三次,对应ip地址的前三位地址,\d表示匹配ip地址的最后一组数字

回溯引用

定义:后半部分引用前半部分中定义的子表达式

正则表达式 :.*?

解析:[1-6]建立了一个数字组,表示,......,

.*?这里用了懒惰型字符,在页面中,正常来说,后面是有一个换行符的。元字符.不匹配换行符,如果没有换行符,贪婪型可能会从直接匹配到,为了保险起见,用懒惰型肯定是没有错的。

表示,......,

但是这个正则表达式会将 今天。。 也给匹配出来。这个时候我们可以利用回溯引用来实现

正则表达式:.*?

解析([1-6])把这个提成一个子表达式, \1代表引用子表达式的结果,\1--第一个子表达式的结果

利用回溯引用来替换字符串:

解析:$1代表替换的时候引用的第一个子表达式,$2是第二个

大小写转化

\E 结束转化

\l 把下一个字母转化为小写

\L 把/L与\E之间的字符全部替换为小写

\u 把下一个字母转化为大写

\U 把\U与\E之间的字符全部转化为小写

向前向后查找

正则表达式:(?

解析:(?

正则表达式:.+(?=\$) 向$符号前面查找

操作符:

嵌入条件

语法:(?(条件)满足情况下执行|不满足情况下执行)

测试正则:(?=-)(?(1)\w|\s)

解析:(?=-) 向前查找一个 - 字符

(?(1)\w|\s) 如果(?=-) 条件执行成功 ,即 - 字符存在,匹配一个\w否则匹配一个\s

个人微信号

长按加好友!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181111G0DCRH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券