簡體   English   中英

正則表達式在Python中替換或添加子字符串

[英]Regex replace or add substring in 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附加到字符串中

假設beta = 10在字符串中僅出現0或1次,則可以這樣執行:

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

該模式將行尾視為beta = \\ d +的替代匹配,並且由於我們僅替換第一個匹配項,因此僅當行不包含beta = \\ d +時才適用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM