当前位置:  开发笔记 > 前端 > 正文

正则表达式 - 如何匹配除特定模式之外的所有内容

如何解决《正则表达式-如何匹配除特定模式之外的所有内容》经验,为你挑选了4个好方法。

如何编写正则表达式以匹配任何不符合特定模式的字符串?我面临的情况是我必须匹配(A和~B)模式.



1> Gumbo..:

您可以使用前瞻声明:

(?!999)\d{3}

此示例匹配除以外的三个数字999.


但是如果您没有使用此功能的正则表达式实现(请参阅正则表达式风格的比较),您可能必须自己构建具有基本功能的正则表达式.

仅具有基本语法的兼容正则表达式将是:

[0-8]\d\d|\d[0-8]\d|\d\d[0-8]

这也匹配任何三位数序列999.


它可能不是标准的,但大多数现代语言不支持它吗?这些天用什么语言*不支持前瞻?

2> Aleks..:

如果要匹配字符串中的单词A而不匹配单词B.例如:如果您有文本:

1. I have a two pets - dog and a cat
2. I have a pet - dog

如果你想搜索宠物的文本行而且没有猫,你可以使用这个正则表达式:

^(?=.*?\bdog\b)((?!cat).)*$

它只会找到第二行:

2. I have a pet - dog


嗯,是的,我现在发现他对这些帖子的评论之一.我在标题中看到了正则表达式.无论如何,如果有人在寻找相同的正则表达式时发现这篇文章,就像我一样,也许它可能对某人有帮助:)感谢您的评论
仍然在2018年帮助.:)

3> Ben S..:

匹配模式并使用宿主语言反转匹配的布尔结果.这将更易读和可维护.



4> zx81..:

没有,复活这个古老的问题,因为它有一个没有提到的简单解决方案.(在为正则表达式赏金任务做一些研究时找到你的问题.)

我面临的情况是我必须匹配(A和~B)模式.

这个基本的正则表达式非常简单: B|(A)

您只需忽略整体匹配并检查第1组捕获,其中包含A.

一个例子(所有关于在正则表达式中解析html的免责声明):A是数字,B是数字

正则表达式: |(\d+)

演示(查看右下方窗格中的第1组)

参考

如何匹配模式除了情况s1,s2,s3

除非......如何匹配模式

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有