【发布时间】:2017-10-27 18:22:29
【问题描述】:
我在下面找到了给定的模式并在中间没有空格的情况下返回它。这可行,但我还想在子中的\g<2> 和\g<3> 之间添加一个/,但前提是它不存在;否则会有重复的//。我尝试过的所有事情都会弄乱捕获组。有什么帮助吗?
pattern = re.compile(r"((\d{1,2}/\d{1,2}) (/?(\d{4}|\d{2})))")
report_text = pattern.sub("\g<2>\g<3>", report_text)
这是我的输入和预期结果:
Inputs Expected
02/58 98 02/58/98
02/58 /98 02/58/98
02/58 9518 02/58/9518
02/58 /98 02/58/9518
【问题讨论】:
-
你不能只匹配`\/?`并替换为
/吗? regex101.com/r/7Hoqnu/1
标签: regex optional backreference capturing-group