0

以下の文字列 (for または or で始まらないもの) から (テスト) 文字列の文字列位置を見つけたいと思います。

 •  <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

Try this

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

see it here on Regexr

With the \(.*?\) I am matching everything from an opening bracket to the first closing bracket.

Then I use a negative lookahead (?!for|or) to ensure that there is no "for" and no "or" directly after the opening bracket.

In a lookbehind assertion in Python it is not possible to use alternations. They have to be of fixed length.

于 2012-09-04T10:04:04.190 に答える
0

find正規表現ではなく、文字列メソッドを使用したいと思います。

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