python - 使用 Python 精确替换内容中的单词

标签 python regex replace

我正在尝试使用正则表达式替换一些内容。我可以使用以下方法做到这一点:

EX: """ The search technique is usefull, the search technique is usefull """
old = 'the'
toreplace = "<span class='highlight' STYLE='background-color:yellow'>" +  old + "</span>"
pattern = re.compile(re.escape(old), re.I)
highlighted_txt = re.sub(pattern,toreplace,A,count)

" <span class='highlight' STYLE='background-color:yellow'>the</span> search tech
nique is usefull, <span class='highlight' STYLE='background-color:yellow'>the</s
pan> search technique is usefull "

但我想做的是用内容中准确找到的词替换旧词。像第二个"The"应该换成

<span class='highlight' STYLE='background-color:yellow'>The</span>

" <span class='highlight' STYLE='background-color:yellow'>the</span> search tech
nique is usefull, <span class='highlight' STYLE='background-color:yellow'>The</s
pan> search technique is usefull "

最佳答案

当使用 re.sub 时,您可以将 \0 放在替换字符串中,它将扩展为搜索表达式的匹配项。您需要确保 \0 不会被解释为八进制转义,因此使用原始字符串文字很方便。例如,您可以将代码的第三行更改为

toreplace = r"<span class='highlight' STYLE='background-color:yellow'>\0</span>"

你应该得到你正在寻找的行为。

由于您要使用整个匹配字符串,因此无需在正则表达式中创建任何组。 0 组始终定义为整个匹配字符串。

关于python - 使用 Python 精确替换内容中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389741/

相关文章:

javascript - 请谁能帮我将此正则表达式模式从 javascript 转换为 c#

python - 为Python创建独立环境

python - 使用 JSON 处理 GET 和 POST 请求的简单 Python 服务器

python - 如何使用 python-cffi 共享动态库(在 linux 中)?

c# - Regex.Match 简单数组

在不改变其他词的情况下替换R中的文本

c# - 如何以编程方式获取/设置(Windows 程序的)可视化组件的数据?

REGEXP_REPLACE 用于精确的正则表达式模式,不起作用

function - Powershell用查找变量替换

java - Files.move REPLACE_EXISTING 无法解析为变量