我有以下正则表达式搜索文本和前缀并附加HTML' a'匹配子字符串的标签。它成功地完成了我想要的一切,除非通过使用' safe'来转义HTML。由Jinja过滤。正则表达式如下:
re.sub('(^#\w*|(?<=\s)#\w*)',
r'<a href="{{ url_for(\'main.tag\', tagname=tag) }}">\1</a>',
'here is some #text with a #hashtag')
上面应该出现here is some #text with a #hashtag
其中&#39; #text&#39;和&#39; #hashtag&#39;是可点击的链接。然而,通过使用Jinja的“安全”#39;过滤它出来
"here is some "<a href="{{ url_for(\'main.tag\', tagname=tag) }}">#text</a>" with a "<a href="{{ url_for(\'main.tag\', tagname=tag) }}">#hashtag</a>
有几点需要注意:
<a href="/tag/hashtag">#hashtag<a>
而不是<a href="{{ url_for(\'main.tag\', tagname=tag) }}">#hashtag</a>
我确信它与Jinja正在处理的字符串有关。我对如何转义字符串中的特定字符并将其传递给Jinja进行处理并不自信。
我逃脱了人物的错误吗?思考?提前谢谢。