0

我想从下面的字符串(既不以或开头的字符串)中找到(测试)字符串的字符串位置:

 •  <test>* (for test) (or test) (test)

是否可以在断言后面使用否定查找来找到特定的字符串?我正在使用这个正则表达式,但我遗漏了一些东西:

m_comments = re.search('(?<!\(for)|(?<!\(or)', line)

我们也可以在断言后面结合一个 or 语句吗?

注意: test 可以是任何可能的字符串:

<an other eg> (for another test) (or with this) (anything)
4

2 回答 2

5

试试这个

\((?!for|or).*?\)

在 Regexr 上看到它

使用\(.*?\)I 匹配从左括号到第一个右括号的所有内容。

然后我使用负前瞻(?!for|or)来确保在左括号之后没有“for”和“or”。

在 Python 的后向断言中,不可能使用交替。它们必须是固定长度的。

于 2012-09-04T10:04:04.190 回答
0

我认为您想使用find字符串方法,而不是正则表达式:

string_to_look_up.find('(test)')
于 2012-09-04T09:55:25.710 回答