2016-11-17 9 views
0

私はこの問題について話している他のいくつかの記事を見つけましたが、私の修正方法はまだ見つかりませんでした。ここに私のコードは次のとおりです。Python regexは "何も繰り返さない"エラーを発生させます

words = [':\)','sleeping','... :\(','facebook','tired','out of the',"i'm"] 
regex = re.compile(r'\b%s\b' % '\\b|\\b'.join(words), flags=re.IGNORECASE) 

私はこのエラーを取得する:

error: nothing to repeat 
+0

あなたの 'words'リストは正しく宣言されていません。 –

+0

regex re.compileの行がうまく表示されます – Skycc

+0

どうすれば修正できますか? @RohanAmrute – msmazh

答えて

3

2つの可能性があります。あなたの正規表現に関連するPythonのバグを実行しているか、エスケープされていないセットが()のリストの中にあります。いずれにしても、誤って正規表現のパターンにマッチしていないことを確認することはおそらく賢明です。

代わりにこれを試しましたか?あなたのリストが本当に1600個の要素を持っていない場合

escaped = map(re.escape, words) 
re.compile(r'\b%s\b' % '\\b|\\b'.join(escaped), flags=re.IGNORECASE) 

言ったことのすべて

は、おそらく正規表現は、仕事に最適な作業ではありません。

+0

はい、私はこのソリューションを試してみました、そして、それはかなりうまくいった – msmazh

関連する問題