我在c#webapp上使用Elasticsearch 1.7突出显示,但突出显示的数据中包含html。目前我正在使用此正则表达式删除html
Regex.Replace(rawHighlight, "<.*?>", string.Empty)
当突出显示未完成完整的html标记时,问题就出现了。例如,如果我的前置和后置标记为@highlight--
和--highlight@
,我可能会收到这样的结果:
<div>This is an @highlight--example--highlight@ </d
因此正则表达式将删除第一个div
但不会删除那个不完整的那个。 </d
所以这是一个两个问题。是否有正则表达式在第一个正则表达式运行后删除格式错误的html(将在字符串的结尾或开头)或者是否有更好的方法来使用Elasticsearch的{{1}}以便我不必解析字符串?
答案 0 :(得分:1)
也许你已经问过自己,但是为了完成: 为什么你的搜索索引中有html?如果你真的需要,那么添加第二个(脚本化)字段,其中包含一个解析的html(没有标签),并用它来突出显示。