簡體   English   中英

Python 正則表達式替換 substring 和值

[英]Python regex replace substring and value

我想從字符串中替換子字符串{以某種格式}。 如果沒有找到 substring ,則 append 一些字符串到原始字符串。

這可能有點令人困惑,所以讓我試着舉個例子。 我想用AGE XXX替換AGE/age {digits} 如果沒有找到, append NO AGE FOUND

例如,假設我們有一個字符串

He is in old age. At AGE 51, something something. At age 12 he bla bla.

這應該替換為

He is in old age. At AGE XXX, something something. At AGE XXX he bla bla.

另一個例子:

He is in old age. Something something bla bla.

將替換為:

He is in old age. Something something bla bla. NO AGE FOUND

這可能根本沒有意義,只是試圖創建一個類似於我的情況的示例。

您可以使用re.subn

import re

def redact(text):
    redacted, n_found = re.subn(r"(age|AGE)\s+\d+", "age XXX", text)
    return redacted if n_found else redacted + " NO AGE FOUND"

print(redact("He is in old age.  At AGE 51, something something.  At age 12 he bla bla."))
# He is in old age.  At age XXX, something something.  At age XXX he bla bla.

print(redact("He is in old age.  Something something bla bla."))
# He is in old age.  Something something bla bla. NO AGE FOUND

具體來說, re.subn返回一個包含新字符串和替換次數的元組。

暫無
暫無

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

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