私はこれが他のところでカバーされていたことは知っていますが、Pythonがエラーを返しました:無効なグループ参照
文字列はこのような恐ろしい「\ 3」の文字いたら何:そして
new_data = r'C:\temp\3_times.csv'
...再あなたがしようとするので、あなたはグループとしてそれに言及していることを「考えて」そして、あなたはこのエラーを取得し、そのデータを使用してサブの操作を行います。
newfiledata = re.sub(old_data,new_data,filedata)
error: invalid group reference
文字列のそのケースを探していると、余分なコードの多くを取るとそれを渡す前に、それを直接変更せずに、このエラーを回避するためにどのような方法があります。
注:エスケープ文字を使用して文字列を変更する方法は、後でサブ関数を使用して文字列を書き込む必要があるため、オプションではありません。これは、特殊文字をエスケープする方法に関する疑問の重複ではありません。
正規表現では、リテラルのバックスラッシュをエスケープする必要があります。正規表現としては 'r'C:\\ temp \\ 3_times \ .csv''となるでしょう。正規表現のリテラルのメタキャラをエスケープするだけです。あなたは 'r '([。^#| * +?()\ [\] {} \\ - ])' 'を使用してサブを行うことができます – sln
@ slnは'それは生の文字列であり、スラッシュをエスケープする必要はありませんか?それともそうでないのですか? – jacoblaw
@jacoblaw - 正規表現エンジンに渡すものです。すべてのリテラルメタキャラクターをエスケープする必要があります。 – sln