[英]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.