如何将正则表达式模式匹配包含在替换输出中

时间:2017-08-22 19:22:07

标签: regex

例如,如果我想在连字符前面有一个大写字母(A-,C-等......)的所有实例之间添加一个空格,那么我可以用什么函数来实现呢?

或者,有没有办法让re.sub输出匹配的模式? :

>>> text = 'T- AB-'
>>> re.sub(r'\b[A-Z]-', 'what goes here?', text)
>>> text
'T - AB-'

1 个答案:

答案 0 :(得分:0)

您正在寻找使用捕获括号和\ 1

import re

text = 'T- AB-'
text = re.sub(r'\b([A-Z])-', r'\1 -', text)
print (text)

结果:

T - AB-

这应该可以解决问题。无论你在()中捕获什么都可以用\ 1来引用。如果你有一系列的括号,每一组都可以像\ 2,\ 3等一样引用。祝你好运!