繁体   English   中英

Python Regex 立即替换组

[英]Python Regex instantly replace groups

有没有办法使用正则表达式直接替换所有组?

正常方式:

re.match(r"(?:aaa)(_bbb)", string1).group(1)

但我想实现这样的目标:

re.match(r"(\d.*?)\s(\d.*?)", "(CALL_GROUP_1) (CALL_GROUP_2)")

我想从 Regex 刚刚捕获的组中立即构建新字符串。

看看re.sub

result = re.sub(r"(\d.*?)\s(\d.*?)", r"\1 \2", string1)

这是 Python 的正则表达式替换(replace)函数。 替换字符串可以用所谓的反向引用(反斜杠、组号)填充,这些引用被组匹配的内容替换。 组的计数与group(...)函数相同,即从1开始,从左到右,通过打开括号。

接受的答案是完美的。 我会补充说,使用以下语法可能会更好地实现组引用:

r"\g<1> \g<2>"

对于替换字符串。 通过这种方式,您可以解决组后面可能跟数字的语法限制。 同样,这一切都出现在文档中,没有什么新东西,只是有时乍一看很难发现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM