【发布时间】:2017-06-25 13:32:42
【问题描述】:
re.sub('a(b)','d','abc') 产生 dc,而不是 adc。
为什么re.sub 替换整个捕获组,而不只是捕获组'(b)'?
【问题讨论】:
-
你没有在替换部分使用它,所以你期望什么?如果要替换前面有“a”的“b”,则需要
re.sub('ab','ad','abc')或re.sub('(a)b',r'\1d','abc'),其中"\1"指的是捕获组。 -
谢谢!预计默认情况下会替换捕获组。正确的方法看起来不那么直观,但可能更灵活。
-
@Nick:但是
re.sub文档说它确实做到了这一点,没有提到捕获组:"替换最左边的非重叠模式在字符串中"
标签: python regex python-3.x replace capturing-group