擅长:python、mysql、java
<p><code>re.sub</code>将替换它匹配的所有内容</p>
<p>有一种更通用的方法来解决您的问题,您不需要重新修改正则表达式</p>
<p>代码如下:</p>
<pre><code>import re
s = 'Data: year=2018, monthday=1, month=5, some other text'
reg = r"year=(\d{4}), monthday=(\d{1}), month=(\d{1})"
r = "am_replace_str"
def repl(match):
_reg = "|".join(match.groups())
return re.sub(_reg, r,match.group(0)) if _reg else r
#
re.sub(reg,repl, s)
</code></pre>
<p>输出:<code>'Data: year=am_replace_str, monthday=am_replace_str, month=am_replace_str, some other text'</code></p>
<p>当然,如果您的案例不包含组,您的代码可能如下所示:</p>
<pre><code>import re
s = 'Data: year=2018, monthday=1, month=5, some other text'
reg = r"year=(\d{4}), monthday=(\d{1}), month=(\d{1})"
r = "am_replace_str"
def repl(match):
_reg = "|".join(match.groups())
return re.sub(_reg, r,match.group(0))
#
re.sub(reg,repl, s)
</code></pre>