正则表达式---零宽度正预测先行断言 (?=X)

来源:互联网 发布:商品条形码扫描软件 编辑:程序博客网 时间:2024/04/25 17:19

零宽度正预测先行断言——这句话我们理解的时候要分为三个部分:零宽度、正、预测先行判断。

  • 零宽度:指匹配指针在完成断言判断后,返回原位置。断言不会影响指针位置。
  • 正:指字符串符合X要求。
  • 预测先行判断:这个就比较好理解了,就是判断指针前方是否符合要求。

零宽度正预测先行断言,在正则表达式中我们也可以理解为需要先行满足的条件。即在满足先行的条件后,才有必要执行之后的匹配判断 。

例如,要获取html代码中的非<h*>(<h1>、<h2>、<h3>等)标签,我们用如下正则:

regex="<(?=[^/])(?!h\\d).*?>"

这里有两个先行判断:
  • 不以字符'/'开头;
  • 不以字母h加上一个数字开始
0 0