如何用已修改的匹配字符串替换正则表达式中的匹配字符串

时间:2019-01-18 15:28:14

标签: python regex

让我们以here为例。

#!/usr/bin/python
import re

phone = "2004-959-559 # This is Phone Number"

# Delete Python-style comments
num = re.sub(r'#.*$', "", phone)
print "Phone Num : ", num

在这里,让我们说,除了删除注释以外,我只想用修改后的匹配文本替换这些注释。例如,将Python样式注释替换为C样式注释,以使# This is Phone Number成为/* This is a Phone Number */。我该怎么办?

2 个答案:

答案 0 :(得分:4)

您可以在替换字符串中使用捕获组和反向引用:

>>> phone = "2004-959-559 # This is Phone Number"
>>> print re.sub(r'#(.*)$', r'/* \1 */', phone)
2004-959-559 /*  This is Phone Number */
  • (.*)在第一个捕获组中的#之后捕获字符串。
  • \1re.sub中匹配正则表达式中第一个捕获组的后向引用。
  • 您必须在替换中使用原始字符串模式才能正确解释\1

答案 1 :(得分:0)

根据您的注释示例,str.replace应该适合您:

EXPLAIN (ANALYZE)