我想我的逻辑真的很弱。
我需要编写一个匹配除www
之外的所有内容的正则表达式。它应该匹配wwwd
,abcd
和其他所有内容,只有不是 www
。 (天啊,拜托,这应该不是很容易)。
我正在使用Ruby语言的正则表达式实现。
更新:我需要使用正则表达式而不只是text != 'www'
,因为它是API的设计方式。它期望模式作为参数而不是结果。
答案 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,})?$