この問題の解決策を見つけるのに苦労しています。
多数の電子ブックのコンテンツを解析し、特定の用語と文字を見つけ、各用語の場所と長さをマークしています。
通常のケースは次のようなものです (ゲーム・オブ・スローンズからの抜粋):
「彼が立ち止まって下を見たとき、彼の頭はめまいがして泳ぎ、指が滑るのを感じました.
文字「ふすま」を検索する場合、その位置は 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 を含める必要があるため、場所 = 47、長さ = 20 です。
これらの特定のケースを追加することで一時的に回避することができました (具体的には「Catelyn <a></a> Stark」を検索します)。私の試みは RegEx を使用してきましたが、限られた成功しか収めていません.
HTML マッチング/ストリッピング (および RegEx =) を使用するかどうか) に関するさまざまな質問を見つけましたが、このケースはややユニークなようです.
タグのストリッピングはオプションではありませんコンテンツを保持する必要があるため.
これはスタンドアロンの C# アプリケーション内にあります.
アイデア、正しい方向へのステップ、または同様の例で、あなたの検索が私のものよりもうまくいった場合、大歓迎です!