我得到了一个函数,它用HTML标记包围的匹配替换子字符串匹配。此函数将主要使用英语和希腊语的字符串。在
功能:
def highlight_text(st, kwlist, start_tag=None, end_tag=None):
if start_tag is None:
start_tag = '<span class="nom">'
if end_tag is None:
end_tag = '</span>'
for kw in kwlist:
st = re.sub(r'\b' + kw + r'\b', '{}{}{}'.format(start_tag, kw, end_tag), st)
return st
除了第一个子串【Korais】:st=“Korais:st=“Korais Korais”st=“Korais Korais Korais除第一子串[Korais:st=“Korais Korais Korais Korais除第一子串[Korais]:st=<“Korais”的希腊语除第一子串[科赖]以外的希腊希腊语测试字符串除第一子串[Korais]:st=<<<Koraais]以外的希腊希腊希腊语测试字符串测试字符串的希腊语的测试字符串:st=< 测试代码: 当我运行代码[st is the above string]时,只有英语的子字符串被标记。希腊语substr被忽略。请注意,我在Python2.7上运行了上面的块。当我使用python3.4时,所有的子字符串都会被替换。
另一个问题是,当我在Flask应用程序中运行上述函数时,它会抛出一个错误:正则表达式意外结束。在 如果可能的话,我应该如何在不使用外部库的情况下解决上述问题?
我已经两天没头发了。在
在python2.7中,需要显式地将文本转换为Unicode。请参见下面的固定片段:
见demo
注意,所有的文字都用
u
前缀声明,所有变量都是decode
ed,re.sub
结果是encode
d返回UTF8。在你的}。在
st
来自哪里?请注意,在python2.x中'μορφή' != u'μορφή'
中,您可能正在比较str
和{建议:尽可能在任何地方使用
unicode
,例如:相关问题 更多 >
编程相关推荐