正则表达式 - 匹配整个字符串除非

时间:2011-08-02 21:29:37

标签: regex

我需要编写一个正则表达式,它将匹配字符串中的所有内容,除非它中包含某个单词。以此字符串为例:

http://12.34.567.890/sqlbuddy

匹配所有内容的表达式是:

^.*$

...如果它包含单词“sqlbuddy”,则需要对其进行修改以使匹配字符串。我认为负面的前瞻会做到这一点,但那对我不起作用。

例如,我试过这个,这不起作用:

^(?!sqlbuddy).*$

我该如何修改?

2 个答案:

答案 0 :(得分:5)

该示例不起作用,因为它假定sqlbuddy位于字符串的开头。您需要将其更改为以下内容,以便sqlbuddy可以出现在字符串中的任何位置:

^(?!.*sqlbuddy.*).*$ 

但是,如果你真的只想检查你的字符串是否包含给定的单词,那么"http://12.34.567.890/sqlbuddy".contains("sqlbuddy")可能就足够了。

答案 1 :(得分:2)

此外,这对我有用:字符串'sqlbuddy'的位置无关紧要。

^((?!sqlbuddy).)*$