【问题标题】:Boldening parts of string ignoring case python,HTML [closed]字符串的加粗部分忽略大小写python,HTML [关闭]
【发布时间】:2013-10-15 01:37:14
【问题描述】:

我想为我的搜索引擎加粗部分文本......主要引擎是 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>

请注意,我没有更改大小写;我只是用&lt;b&gt; 标签包围了它。

【问题讨论】:

  • 你在使用 Django 吗?
  • @Emil 不!只是标准的 Python

标签: python search-engine


【解决方案1】:

试试:

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) 以使其不区分大小写。

【讨论】:

  • 不起作用...在 [5] 中:title = "CS 253 BLog" 在 [6] 中:粗体 = re.sub(r"(%s)" % "BLOG"," \1",title,re.IGNORECASE) In [7]:粗体 [7]:'CS 253 BLog' In [8]:
  • 是的,我更正了。在替换模式之前添加了r
  • 不适用于不同的情况,如果适用于不同的情况,我会接受你的回答@Emil
  • 好的,让它工作,由于某种原因,IGNORECASE 标志被忽略了。
  • BRILLIANT @Emil 好用!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2019-12-03
  • 2016-01-29
  • 2016-11-11
  • 1970-01-01
相关资源
最近更新 更多