正则表达式在Python中替换或添加子字符串

2024-04-19 00:46:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个唯一的正则表达式来替换子字符串或添加它如果丢失。你知道吗

示例:

set beta=10
"alpha=25 beta=42 delta=43" need to become "alpha=25 beta=10 delta=43"
"alpha=25 delta=43" need to become "alpha=25 delta=43 beta=10"

下面的代码仅用于替换现有值,但如果要替换的索引不存在,则不会添加任何内容。你知道吗

dest = re.sub(r'(.*)(beta=\d+)( .*)',r'\1 beta=10 \3',source)

我可以这么做,但我需要一个表达式:

if re.search(r'beta=\d+',source):
    dest = re.sub(r'(.*)(beta=\d+)( .*)',r'\1 beta=10 \3',source)
else:
    dest = source + " beta=10"

因此,如果beta=xx存在于一个字符串中,并且它与beta=yy不匹配,那么替换它

因此,如果beta=xx不存在于字符串中,那么将beta=yy附加到字符串中


Tags: to字符串代码alphare示例sourceneed
1条回答
网友
1楼 · 发布于 2024-04-19 00:46:21

假设beta=10在字符串中只出现了0或1次,您可以这样做:

dest = re.sub("(beta=\d+|$)","beta=10",source+" ",1).strip()

该模式将行尾视为beta=\d+的可选匹配项,并且由于我们只替换第一个匹配项,因此仅当行不包含beta=\d+时才适用

相关问题 更多 >