【发布时间】:2010-02-20 00:39:51
【问题描述】:
def boldword(text, needle):
return mark_safe(re.compile(r"\b(%s)\b" % "|".join(map(re.escape, needle.split(' '))), re.I).sub(r'<strong>\1</strong>', text))
这是我目前的功能,在给定针的情况下将字符串文本加粗。 (就像 Google...当您进行搜索时,它们会为您将文本加粗)。
- 当指针是“节目”时,它不会突出显示“www.theshow.com”。
- 当指针是“我的节目(视频)”时,它不会突出显示“我的节目(视频)”...它只会突出显示我的节目。
-
当针是“apple's ipad”时,它不会高亮“apple ipad”……它只会高亮ipad。
预期输出: www.theshow.com ,电流输出: www.theshow.com
预期输出: 我的节目(视频) ,电流输出: 我的节目(视频)
预期: 苹果ipad ,当前的: 苹果ipad
我认为主要问题是当我将空格与其他标点符号分开时。正确的? 有人可以修改我当前的功能以考虑这些因素吗?
谢谢
【问题讨论】:
-
我认为你应该用 Lisp 写作!
-
您给出的输出示例是您的预期输出还是您观察到的输出?如果是您观察到的输出,您的预期输出是什么?
-
示例是我的预期输出。我会编辑清楚。
-
所以应该可以组合词吧?不连续的词怎么办?例如:boldword('a b c', 'ac')... 'ac' 是否应该加粗?
-
我认为您需要更好地解释您想要什么,或者提供超过 3 个参考示例。