python - 转义 re.sub 的 repl 参数

标签 python regex

我想确保 re.subrepl 参数是转义的,这样任何像 \1 这样的特殊序列都不会解释:

>>> repl = r'\1'
>>> re.sub('(X)', repl, 'X')
'X'
>>> re.sub('(X)', desired_escape_function(repl), 'X')
'\\1'

是否有一个函数可以做到这一点?我知道 re.escape存在,应该使用这个吗?

最佳答案

不要为此目的使用re.escapere.escape 用于 pattern 参数,而不是 repl 参数。

相反,请遵循 the advice of Python's documentation , 并手动将所有反斜杠替换为两个反斜杠:

>>> repl = r'\1'
>>> re.sub('(X)', repl.replace('\\', '\\\\'), 'X')
'\\1'

关于python - 转义 re.sub 的 repl 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49943270/

相关文章:

python - 使用 pytables 访问 hdf5 文件中任意组的方法是什么?

python - 在 python pandas 中加载具有单独列的文本文件

c# - 正则表达式整行

regex - 使用 sed 根据第 9 列更改第 11 列的值

python - 使用 Rest-framework 以 CSV 格式导出巨大的 django 查询集

python - PyhtonError导入错误: No module named six

python - 如何删除多索引数据框中只有一个条目的行?

javascript - 与任何主机匹配的网址的正则表达式

python - 验证 ModelForm 的最佳方法

python - 使用 Regex python 在代码中查找函数