我是靠谱客的博主 眯眯眼可乐,最近开发中收集的这篇文章主要介绍正则之断言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

假如:我们想要的是xxx,它没有规律,但是

 例如提取:<title>xxxxxx</title>
想指定xxx(.*)前肯定会出现<title>,就用正后发断言,表达式:(?<=<title>).*
向指定xxx后边肯定会出现</title>,就用正先行断言,表达式:.*(?=</title>)
两个加在一起,就是(?<=<title>).*(?=</title>)

这样就能匹配到xxx。

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

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

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

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

断言只是条件,帮你找到真正需要的字符串,本身并不会匹配!

表达式意义
(?=X )零宽度先行断言。仅当子表达式 X 在 此位置的右侧匹配时才继续匹配。例如,/w+(?=/d) 与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。
(?!X)零宽度负先行断言。仅当子表达式 X 不在 此位置的右侧匹配时才继续匹配。例如,例如,/w+(?!/d) 与后不跟数字的单词匹配,而不与该数字匹配 。
(?<=X)零宽度正后发断言。仅当子表达式 X 在 此位置的左侧匹配时才继续匹配。例如,(?<=19)99 与跟在 19 后面的 99 的实例匹配。此构造不会回溯。
(?<!X)零宽度负后发断言。仅当子表达式 X 不在此位置的左侧匹配时才继续匹配。例如,(?<!19)99 与不跟在 19 后面的 99 的实例匹配
  • 从断言的表达形式可以看出,
  • 它用的就是分组符号,
  • 只不过开头都加了一个问号,
  • 这个问号就是在说这是一个非捕获组,这个组没有编号,不能用来后向引用,只能当做断言。

最后

以上就是眯眯眼可乐为你收集整理的正则之断言的全部内容,希望文章能够帮你解决正则之断言所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部