如何替换一行中匹配模式的所有引用?

2024-06-25 23:54:54 发布

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

假设我有这样一句话:

"[foo] and (foo) along with foofrancis.foo = foo"

其中,匹配模式"foo"始终与非a-zA-Z字符相邻,但在一行中可能出现任意次数。在

当foo不与a-z或a-z字符相邻并输出新行时,我想用"bar"替换所有出现的"foo"。在

其中foo和{}都是我传入的变量。有点像:

^{pr2}$

输出:

[Goodbye] and (Goodbye) along with Hellofrancis.Goodbye = Goodbye

我不确定如何配置re.sub


Tags: andrefoowith模式bar字符次数
1条回答
网友
1楼 · 发布于 2024-06-25 23:54:54
import re

foo = re.escape("Hello")
bar = re.escape("Goodbye")
line = "[Hello] and (Hello) along with Hellofrancis.Hello = Hello"
newline = re.sub("\\b" + foo + "\\b", bar, line)
print (newline)

这应该能满足你的需要。re.sub公司takes需要3个参数。你要替换的是什么,要什么,还有文本。\b是单词边界。注意地狱不会按照你的要求改变。我还对foo和bar进行了转义,因此如果传入的数据包含句点之类的regex字符,则不会影响输出。在

相关问题 更多 >