正则表达式与“www”不匹配

时间:2010-02-17 11:27:17

标签: regex

我想我的逻辑真的很弱。

我需要编写一个匹配除www之外的所有内容的正则表达式。它应该匹配wwwdabcd和其他所有内容,只有不是 www。 (天啊,拜托,这应该不是很容易)。

我正在使用Ruby语言的正则表达式实现。

更新:我需要使用正则表达式而不只是text != 'www',因为它是API的设计方式。它期望模式作为参数而不是结果

4 个答案:

答案 0 :(得分:10)

为何选择正则表达式? text != "www"不够吗?

尽管如此(使用look-ahead):^(?!www$).*

答案 1 :(得分:4)

这是一个普通的香草正则表达式。在某些方言中,你可以用负面断言做些更好的事情。

^(.|..|[^w]..|.[^w].|..[^w]|.....*)$

英文:

你想要的东西恰好是一个字符,正好是两个字符,正好是三个字符,其中至少有一个字符不是w,或者长度超过3个字符。

答案 2 :(得分:1)

与Laurence Gonsalves(*)相同的一般想法,但在我看来,可以说^.$|^..$|^....+$|.*[^w].*即开始和结束之间的1或2或超过3个字符,或任何包含非w的数字

(*)我的意思是这是对他的答案的评论,但不小心将其作为我自己的答案发布。我想我会把它留在这里。

答案 3 :(得分:0)

只是另一种方法

^.{0,2}([^w].*|.{4,})?$