我有一个字符串,它可以是“word”或“word(something)”。我怎么才能匹配“单词”,而不是“单词(某物)”?
答案 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(?! \([^)]*\))