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

regex – 正则表达式和否定整个字符组

发布时间:2020-12-14 00:37:01 所属栏目:百科 来源:网络整理
导读:我试图的东西,我觉得应该对我来说很明显,但它不是。我试图匹配一个字符串,它不包含特定的字符序列。我试过使用[^ ab],[^(ab)]等匹配字符串不包含’a’或’b’,或只有’a’或’b’或’ba’,但不匹配’ab’。我给的例子不匹配’ab’这是真的,但他们也不
我试图的东西,我觉得应该对我来说很明显,但它不是。我试图匹配一个字符串,它不包含特定的字符序列。我试过使用[^ ab],[^(ab)]等匹配字符串不包含’a’或’b’,或只有’a’或’b’或’ba’,但不匹配’ab’。我给的例子不匹配’ab’这是真的,但他们也不会匹配’一个’单独和我需要他们。有没有一些简单的方法来做到这一点?
使用排除lookahead:
^(?!.*ab).*$

更新:在下面的评论中,我说这种方法比Peter’s answer中给出的慢。我从那时开始运行一些测试,发现它的速度确实略快。然而,喜欢这种技术胜过其他的原因不是速度,而是简单。

另一种技术,描述here作为一个温和的贪婪令牌,适合更复杂的问题,如匹配分隔文本,其中分隔符由多个字符组成(如HTML,如卢克评论below)。对于问题中描述的问题,它是杀了。

对于任何有兴趣的人,我测试了一大块Lorem Ipsum文本,计数不包含单词“quo”的行数。这些是我使用的正则表达式:

(?m)^(?!.*bquob).+$

(?m)^(?:(?!bquob).)+$

无论我在整个文本中搜索匹配,还是将其分成行和单独匹配,锚定的前景始终优于浮动的。

(编辑:李大同)

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

    推荐文章
      热点阅读