微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式 后向引用





后向引用:匹配于正则表达式匹配的先前部分


第一步 先把包含在 \( )\ 的部分匹配出


第二布 用\digit,digit为1-9的数字 匹配前 \( )\ 内对应的字符



实例1:


创建文件a

wKiom1ZYbgrSvX48AAAyaHk6k0g980.png

查找 abcd 字符的行

wKioL1ZYb5Hg3dxoAAA37CNct30467.png


在满足第一个匹配条件下再满足第二个括号的内容 只有一个

wKioL1ZYcCahPIPgAAAmEwTEc_g985.png


没有满足第二个条件的行

wKiom1ZYb8aDEiYGAAAxJJX3mnI259.png


将 abcdcabefac 中第一个 c 删除 更改成满足第二个条件

wKioL1ZYcCfxL7gVAAA5nvzmIeY336.png


也就是说先要匹配第一个条件(前面\( )\的字符) 将满足的条件的筛选出

然后再看所筛选的是否再满足第二个条件

wKiom1ZYdN2j-JPXAABHrTakg38566.png





实例2:


wKioL1ZYdlmQ6nyeAAA1Egu9G2c776.png

采用贪婪模式 匹配到最后一个 og



wKiom1ZYdfmilSMXAAA1saAGadM562.png

因为后面有 .* 所有在上图匹配到的字符后所有字符都被匹配到了显示红色



wKioL1ZYdlqQpY4fAAAvMxPpDqA871.png


怎么第四个不行?不是在匹配的字符中有个 go 吗 ?

注意 :必须是先满足第一个条件 也就是go.*og 中间 .*部分不能用来满足第二个条件



wKiom1ZYdfjx4SLjAAAxEuHwSjE610.png



相当于至少满足第一条件匹配的 + 第二条件匹配 (第二条件匹配字符是紧跟第一条件匹配的字符)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐