我需要编写一个正则表达式,它将匹配字符串中的所有内容,除非它中包含某个单词。以此字符串为例:
http://12.34.567.890/sqlbuddy
匹配所有内容的表达式是:
^.*$
...如果它包含单词“sqlbuddy”,则需要对其进行修改以使不匹配字符串。我认为负面的前瞻会做到这一点,但那对我不起作用。
例如,我试过这个,这不起作用:
^(?!sqlbuddy).*$
我该如何修改?
答案 0 :(得分:5)
该示例不起作用,因为它假定sqlbuddy
位于字符串的开头。您需要将其更改为以下内容,以便sqlbuddy
可以出现在字符串中的任何位置:
^(?!.*sqlbuddy.*).*$
但是,如果你真的只想检查你的字符串是否包含给定的单词,那么"http://12.34.567.890/sqlbuddy".contains("sqlbuddy")
可能就足够了。
答案 1 :(得分:2)
此外,这对我有用:字符串'sqlbuddy'的位置无关紧要。
^((?!sqlbuddy).)*$