-1

我想为我的搜索引擎加粗部分文本......主要引擎是 Python ......我有一个名为 q 的 var 中的搜索词(用于查询)......对于这个例子,我们假设搜索词是“ BlOg”我计算搜索结果,我想替换所有出现的“BlOg”,忽略大小写,然后用相同的文本替换所有“blog”和“BLOG”和“BLog”等,但包含在<b>标签中......

例如:

Search term: "BlOg"<br>
result 1 before: "CS Blog"<br>
after: "CS &lt;b&gt;Blog&lt;b>

result 2 before: "Stacker blog" [notice the "blog" is lowercase]<br> 
after: "Stacker &lt;b&gt;blog&lt;b>

请注意,我没有更改大小写;我只是用<b>标签包围它。

4

1 回答 1

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)

于 2013-04-30T10:27:44.407 回答