匹配"字"但不是"字(无论如何)"?

时间:2012-09-25 13:52:33

标签: regex

我有一个字符串,它可以是“word”或“word(something)”。我怎么才能匹配“单词”,而不是“单词(某物)”?

4 个答案:

答案 0 :(得分:7)

根据正则表达式的风格,您可以使用负向前瞻。像这样:

word(?! \(something\))

只需检查以确保匹配的单词后面没有空格和单词。

哦,如果你在字符串中只有单词“word”,你可以这样做:

^word$

确保word是字符串的开头(^)和结尾($)

但是如果你在字符串中只有“word”这个词,你就可以完成

wordString == "word"; // or wordVariable in place of "word", or whatever

答案 1 :(得分:1)

您可以使用^word$

这里^符号表示字符串的开头,$表示字符串的结尾

所以它只会匹配“word”..

答案 2 :(得分:0)

来自python手册:

(?!...)

这是一个负面的先行断言。如果...与下一个字符集不匹配,则匹配字符。

例如,Isaac (?!Asimov)只有在'Asimov'后面没有“Isaac”时才匹配'Isaac'。

答案 3 :(得分:0)

从判断你不想在标题和实际问题中不同的字符串这一事实来判断,我假设你并不是指文字字符串“what”和“something”。

如果您正在使用支持负向前瞻的正则表达式,那么这应该有效:

word(?! \([^)]*\))