私はPythonにかなり慣れていないので、いくつかのキーと文字列を含む辞書を持っています。辞書で見つかったパターンが文字列に存在する場合、文字列を置き換える必要があります。辞書と文字列の両方が非常に大きいです。パターンを見つけるために正規表現を使用しています。
このようなキーが '-(' またはこの '(-)' をポップアップするまで、すべて正常に機能します。
私が書いたコードは次のようになります。
somedict={'-(':'value1','(-)':'value2'}
somedata='this is some data containing -( and (-)'
for key in somedict.iterkeys():
somedata=re.sub(key, 'newvalue', somedata)
コンソールに表示されたエラーは次のとおりです
Traceback (most recent call last):
File "<console>", line 2, in <module>
File "C:\Python27\lib\re.py", line 151, in sub
return _compile(pattern, flags).sub(repl, string, count)
File "C:\Python27\lib\re.py", line 244, in _compile
raise error, v # invalid expression
error: unbalanced parenthesis
また、正規表現コンパイラを使用して多くの方法で試してみましたが、多くの検索を行いましたが、問題に対処するものは見つかりませんでした。どんな助けでも大歓迎です。