そのため、文字列全体 (約 10k 文字) を取得し、その文字列内の単語 (または多くの単語) を検索しています。とregex(word).Matches(scrappedstring)
。
しかし、その単語を含む文全体を抽出する方法。最初のドット/感嘆符/疑問符/などまで、検索された単語の後に部分文字列を取得することを考えていました. しかし、検索された単語の前の文の一部を取得するにはどうすればよいでしょうか?
それとも、より良いロジックがありますか?
そのため、文字列全体 (約 10k 文字) を取得し、その文字列内の単語 (または多くの単語) を検索しています。とregex(word).Matches(scrappedstring)
。
しかし、その単語を含む文全体を抽出する方法。最初のドット/感嘆符/疑問符/などまで、検索された単語の後に部分文字列を取得することを考えていました. しかし、検索された単語の前の文の一部を取得するにはどうすればよいでしょうか?
それとも、より良いロジックがありますか?
境界が.
、!
、?
などの場合は、表現;
全体のすべての文に一致します。目的の単語一致を内部に含む[^.!?;]*(wordmatch)[^.!?;]*
すべての文が表示されます。
例:
var s = "First sentence. Second with wordmatch ? Third one; The last wordmatch, EOM!";
var r = new Regex("[^.!?;]*(wordmatch)[^.!?;]*");
var m = r.Matches(s);
var result = Enumerable.Range(0, m.Count).Select(index => m[index].Value).ToList();
文のフィニッシャー (ドット/感嘆符/疑問符など) の間の部分文字列を取得し、ループ内の各文で単語を検索できます。
次に、一致する単語が見つかったら部分文字列を返します。