2024-09-27 09:34:37 发布
网友
我想用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
但我的实际文本仍然是一样的。你知道吗
我可以用正则表达式修改文本本身吗?你知道吗
您需要将结果存储回文本中,如下所示:
text = pattern.sub("dummy",text)
sub:
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开头的字符串,那么您可能需要使用这个正则表达式
ab
regex = r"ab.*?\b"
您需要将结果存储回文本中,如下所示:
sub
:这个“返回的字符串”实际上不是原来的替换字符串。它是一个包含被替换字符串的新字符串。因此,需要将其赋回到原始字符串
现在您将看到预期的修改字符串:
在Python中,字符串是不可变的。所以,你不能改变它们。您可以做的是,用新的string对象替换对string对象的旧引用,如下所示
另外,如果您试图替换所有以
ab
开头的字符串,那么您可能需要使用这个正则表达式相关问题 更多 >
编程相关推荐