我正在尝试使用正则表达式替换一些内容。我可以使用以下方法做到这一点:
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/