python - 在Python re.sub函数中,如何使用\n语法引用组0?

标签 python regex replace str-replace

在 Python 中 re.sub()的替换参数,我想引用整个匹配的字符串,即组 0。但是,它没有按预期工作。

>>> re.sub(r"(\d)\1", r"\0\1", "aa11bb22cc33")
'aa\x001bb\x002cc\x003'

请注意 \1确实正确引用了组 1。我必须使用 \g<n>引用组 0 的语法。

>>> re.sub(r"(\d)\1", r"\g<0>\1", "aa11bb22cc33")
'aa111bb222cc333'

我想知道是否可以使用\n在替换参数中引用组 0 的语法?

最佳答案

事实并非如此。不过,您可以在整个表达式周围放置一个捕获组,并使用 \1 引用该捕获组,并使用 \2 引用内部组。

>>> re.sub(r"((\d)\2)", r"\1\2", "aa11bb22cc33")
>>> 'aa111bb222cc333'

关于python - 在Python re.sub函数中,如何使用\n语法引用组0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55909025/

相关文章:

Python MySQLdb 插入主键

python - 覆盖 fastAPI 的 HTTPException 响应主体

python - TemplateDoesNotExist at/polls/- 在 Django 教程中

python - 如何使我的 python 脚本易于移植?或者如何将所有模块依赖项编译成二进制文件?

php - 用于匹配字符串中可疑单词的正则表达式

python - 我声明--> str1 ="bbccaa"。我希望结果是所有 b 和 a,即 'bbaa' ,但是

regex - 如何将常规引号(即 ', ")转换为 LaTeX/TeX 引号(即 `' 、 `` '')

javascript - 如何使用重定向 URL 中的对象结果进行重定向?

java - 替换功能不符合预期结果

Java 的 String.replace() 与 String.replaceFirst() 与自制程序