linux——正则表达式在linux中的应用(4):分组与后向引用

我们在字符的连续匹配中使用过"abc\{1,3\}",最后得到的匹配的结果有abc,abcc,即c重复一次两次三次都能匹配到,但是如果需要匹配的是重复的abc这一个整个字符时,我们就需要分组,将abc作为一个整体,示例如下:

  • \( \)

如上可知利用" \( " 和“ \) ” 将abc变成一个整体。

  • 后向引用:表示在引用整个正则中分组中所匹配到的结果,\1表示第一个分组中的正则所匹配到的结果。如果是嵌套分组,分组顺序取决于分组符号的左侧部分部分的顺序。

如下所示,“h.\{4\}”表示h后面有4个任意字符串,所以三行都会匹配到。但是如果我们想要每一行第一个“h.\{4\}”匹配的字符与第二个匹配到的字符相同。可以先将第一个正则分组,在后面进行引用,例子如下:"\1"表示引用列第一个\(h.\{4\}\)匹配成功的字符,所以第三行就不能匹配成功了。因为对于第三行来说,第一个匹配成功的\(h.\{4\}\)字符为hello,但是“A”后面的是hilll,与前面的不一样。

  • \1表示第一个分组中的正则所匹配到的结果,\2表示第二个分组中的正则所匹配到的结果。

如下所示,正则里面有两组,第一个\(h.\{4\}\)匹配成hello,第二个\(h.\{4\}\)匹配成hilll,后面\2匹配第二个组,即hilll,所以第四行匹配成功。

 

总结:

  1. \( 和 \)可以将一串字符变成一个整体。
  2. \1表示第一个分组中的正则所匹配到的结果,\2表示第二个分组中的正则所匹配到的结果。

 

参考:http://www.zsythink.net/archives/1952

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值