我一直无法找到解决此问题的方法。
我正在解析一些电子书的内容,找到特定的术语和字符,标记每个术语的位置和长度。
一个正常的情况是这样的(摘自《权力的游戏》):
“当他停下来往下看时,他头晕目眩,手指在滑落。布兰大叫着,紧紧抓住生命。”
如果我们搜索字符“Bran”,它的位置是 85,长度是 4。很容易。
当有这样的段落时,我的问题就出现了:
<span height="-0em"><font size="7">D</font></span>aenerys Targaryen wed Khal Drogo
我们需要匹配“Daenerys Targaryn”。剥离 HTML 并匹配字符串很容易,但在此示例中,结果需要包含 HTML。因此,这里的预期结果将是位置 = 0,长度 = 67。
另一种情况,由散布在各处的随机锚标签引起:
Did anyone outside the Vale even suspect where Catelyn <a></a>Stark had taken him?
同样,搜索“Catelyn Stark”需要包含 HTML,因此 location = 47,length = 20。
通过添加这些特定案例(专门搜索“Catelyn <a></a>Stark),我已经能够暂时解决它,但显然我应该有一个更强大的解决方案,我似乎无法理解。我的尝试一直在使用 RegEx,但成功有限。
我发现了有关 HTML 匹配/剥离(以及是否使用 RegEx =))的各种问题,但这种情况似乎有些独特。
剥离标签不是一种选择因为必须保留内容。
这是在独立的 C# 应用程序中。
如果您的搜索比我的更好,任何想法、正确方向的步骤或类似示例将不胜感激!