如何使用正则表达式修改字符串的内容(就像字符串。替换)

2024-09-27 09:34:37 发布

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

我想用python中的regex替换字符串的内容。你知道吗

我尝试了以下代码:

regex=r"(?:ab*)\w+"
text ="absd 2013 abpq ab 123absd"
pattern=re.compile(regex)
print pattern.sub("dummy",text)

我得到的结果如下:

dummy 2013 dummy dummy 123dummy

但我的实际文本仍然是一样的。你知道吗

我可以用正则表达式修改文本本身吗?你知道吗


Tags: 字符串代码text文本re内容abregex
2条回答

您需要将结果存储回文本中,如下所示:

text = pattern.sub("dummy",text)

sub

Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl

这个“返回的字符串”实际上不是原来的替换字符串。它是一个包含被替换字符串的字符串。因此,需要将其赋回到原始字符串

现在您将看到预期的修改字符串:

print test
dummy 2013 dummy dummy 123dummy

在Python中,字符串是不可变的。所以,你不能改变它们。您可以做的是,用新的string对象替换对string对象的旧引用,如下所示

text = pattern.sub("dummy", text)

另外,如果您试图替换所有以ab开头的字符串,那么您可能需要使用这个正则表达式

regex = r"ab.*?\b"

相关问题 更多 >

    热门问题