【发布时间】:2011-02-27 09:47:45
【问题描述】:
如何创建一个不匹配的正则表达式?例如,我想用正则表达式匹配不是字符串“www.petroules.com”的所有内容。
我尝试了[^www\.petroules\.com],但这似乎不起作用。
【问题讨论】:
标签: regex
如何创建一个不匹配的正则表达式?例如,我想用正则表达式匹配不是字符串“www.petroules.com”的所有内容。
我尝试了[^www\.petroules\.com],但这似乎不起作用。
【问题讨论】:
标签: regex
^(?!www\.petroules\.com$).*$
将匹配除www.petroules.com 之外的任何字符串。这称为negative lookahead。
[^www\.petroules\.com]
表示“匹配一个字符,除了 w、p、e、t、r、o、u、l、s 或点”。
【讨论】:
.*$ 是一个 noop,可以省略。
.*$,你就完成得更快了。
.*$ 可能 是一个 noop,也可能不是,这取决于。
(?!...)
这称为负前瞻。仅当正则表达式 ... 不匹配时才会匹配。但是,请注意它不消耗字符。这意味着如果您在 ) 之后添加任何其他内容,它将立即开始匹配,即使是作为否定前瞻一部分的字符。
【讨论】: