我想为我的搜索引擎加粗文本部分...主要引擎是Python ...
我在一个名为q(用于查询)的var中有搜索词......对于这个例子我们假设搜索词是“BlOg”我计算搜索结果并且我想要替换所有出现的“BlOg”而忽略了这个案例然后应该使用相同的文本替换所有“博客”和“博客”和“博客”等,但包含在<b>
标签中......
例如:
Search term: "BlOg"<br>
result 1 before: "CS Blog"<br>
after: "CS <b>Blog<b>
result 2 before: "Stacker blog" [notice the "blog" is lowercase]<br>
after: "Stacker <b>blog<b>
请注意,我没有改变案例;我刚用<b>
标签包围了它。
答案 0 :(得分:0)
尝试:
import re
bolded = bolded = re.sub(r"(?i)(%s)" % query, r"<b>\1</b>", content)
示例:
>>> import re
>>> content = "fox iN a blog"
>>> query = "in"
>>> bolded = re.sub(r"(?i)(%s)" % query, r"<b>\1</b>", content)
>>> bolded
'fox <b>in</b> a blog'
在2.7中添加了将IGNORECASE
标记传递给sub
的功能,因此我在正则表达式模式前添加了(?i)
以使其不区分大小写。