加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 22:30:22 所属栏目:百科 来源:网络整理
导读:后向引用,引用的仅仅是文本内容,而不是正则表达式 ! 也就是说,组中的内容一旦匹配成功,后向引用, 引用的就是匹配成功后的内容,引用的是结果,而不是表达式 。 因此,(d{1,3})(.1){3}这个表达式实际上匹配的是四个数都相同的IP地址,比如:123.123.1



后向引用,引用的仅仅是文本内容,而不是正则表达式

也就是说,组中的内容一旦匹配成功,后向引用,引用的就是匹配成功后的内容,引用的是结果,而不是表达式

因此,(d{1,3})(.1){3}这个表达式实际上匹配的是四个数都相同的IP地址,比如:123.123.123.123。

至此,读者已经掌握了传说中的后向引用,就这么简单。

接下来说说什么是断言。

所谓断言,就是指明某个字符串前边或者后边,将会出现满足某种规律的字符串。

就拿文章开篇的例子来说,我们想要的是xxx,它没有规律,但是它前边肯定会有<title>,后边肯定会有</title>,这就足够了。

想指定xxx前肯定会出现<title>,就用正后发断言,表达式:(?<=<title>).*

向指定xxx后边肯定会出现</title>,就用正先行断言,表达式:.*(?=</title>)

两个加在一起,就是(?<=<title>).*(?=</title>)

这样就能匹配到xxx。

相信读者看到这,已经蒙了,不用急,待小菜慢慢讲来。

其实掌握了规律,就很简单了,无论是先行还是后发,都是相对于xxx而言的,也就是相对于目标字符串而言。

假如目标字符串后边有条件,可以理解为目标字符串在前,就用先行断言,放在目标字符串之后。

假如目标字符串前边有条件,可以理解为目标字符串在后,就用后发断言,放在目标字符串之前。

假如指定满足某个条件,就是正。

假如指定不满足某个条件,就是负。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读