-1

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

4

4 回答 4

7

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

word(?! \(something\))

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

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

^word$

这确保这word是字符串的开始(^)和结束($)

但是如果你在字符串中只有单词“word”,你就可以做到

wordString == "word"; // or wordVariable in place of "word", or whatever
于 2012-09-25T13:54:23.290 回答
1

你可以使用^word$.

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

所以它只会匹配“单词”..

于 2012-09-25T13:57:17.710 回答
0

从python手册:

(?!...)

这是一个否定的前瞻断言。如果...不匹配下一个字符集,则匹配字符。

例如,Isaac (?!Asimov)仅当后面没有“Asimov”时才会匹配“Isaac”。

于 2012-09-25T13:55:17.577 回答
0

从您不想在标题和实际问题中以不同方式匹配的字符串这一事实来看,我假设您不是指文字字符串“whatever”和“something”。

如果您使用的是支持负前瞻的正则表达式风格,这应该可以工作:

word(?! \([^)]*\))
于 2012-09-25T14:01:28.467 回答