我知道这在其他地方有所涉及,但我的用例给我带来了困难。
如果一个字符串有一个可怕的" \ 3"像这样的角色:
new_data = r'C:\temp\3_times.csv'
...然后重新认识"您将其作为一个组引用,因此如果您尝试使用该数据执行子操作,则会出现此错误:
newfiledata = re.sub(old_data,new_data,filedata)
error: invalid group reference
有没有办法避免这个错误而不在字符串中查找该情况并在传递它之前直接修改它,这将需要大量额外的代码。
注意:对于我用来修改带有转义字符的字符串的用法并不是一个选项,因为我需要稍后用子函数编写字符串。所以这不是关于如何转义特殊字符的问题的重复。
答案 0 :(得分:1)
您可以简单地使用re.escape()
:
import re
new_data = re.escape('C:\temp\3_times.csv')
...它会转义特殊字符,有关详细信息,请参阅https://docs.python.org/2/library/re.html。