2013-09-30 8 views
6

を含むことができ、文字列を検索します。Pythonの再は、私は、ブラケットまたはプレーン文字列として解釈されないことが他の文字が含まれていてもよい文字列を検索しようとしているブラケット

def findstring(string, text): 
    match = re.search(string, text) 

他のモジュールから派生した文字列を制御しません。私の問題は、文字列は、比類のない括弧があることを私に言って、エラーを発生させ「XYZ)」を含有してもよいということです。

私はすでにあなたが文字列エスケープするre.escape()を使用することができ、成功

match = re.search(r'%s' % string, text) 
+0

は、なぜあなたは、すべての正規表現を使用していますか?文字列が正規表現であると想定されている場合は、無効な正規表現を 'xyz'のように扱うべきです。その正規表現であることをsuppostedない場合は、単に 'text.find(文字列)を使用し'と完全に正規表現モジュールをスキップします。 – tdelaney

+0

ええ〜素晴らしい。 – JohnGalt

答えて

10

せずにこれを試してみました:ドキュメントから

match = re.search(re.escape(string), text) 

を:すべての非英数字と

戻り文字列をバックスラッシュ;正規表現のメタ文字が含まれている可能性がある任意のリテラル文字列と一致させる場合に便利です。

関連する問題