python - 正则表达式 - 字符串替换 "as is"

标签 python regex

我正在尝试这样做:

单词test应该在某些文本中找到并替换为 <strong>test</strong> .但问题是,Test也应该被捕获并替换为 <strong>Test</strong> .

我试过这个:

word = "someword"
text = "Someword and many words with someword"
pattern = re.compile(word, re.IGNORECASE)
result = pattern.sub('<strong>'+word+'</strong>',text)

但在这种情况下,Someword正在变成 someword .我在使用 re 吗?哪里错了?

我要<strong>Someword</strong> and many words with <strong>someword</strong>

最佳答案

您需要使用 capturing group :

>>> import re
>>> word = "someword"
>>> text = "Someword and many words with someword"
>>> pattern = re.compile('(%s)' % word, re.IGNORECASE)
>>> pattern.sub(r'<strong>\1</strong>',text)
'<strong>Someword</strong> and many words with <strong>someword</strong>'

这里的 \1 指的是第一个捕获的组,即括号内捕获的内容。

另见 Search and Replace python re 模块文档的一部分。

关于python - 正则表达式 - 字符串替换 "as is",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23641623/

相关文章:

regex - 正则表达式可以匹配引号外的所有单词吗?

Python pandas 打印值,其中 column = X 和 row = Y

javascript - 如何查找正则表达式的哪个部分/组失败

regex - MongoDB 正则表达式分组

regex - 在 LESS 中使用正则表达式

regex - gitk中正则表达式的格式是什么?

python - Pandas :数首都困难

python - Tensorflow 张量 reshape 并用零填充

python - Jupyter:无法创建新笔记本?

python - error_perm : 500 Unknown command Python ftplib storbinary