必要なことを行うためにいくつかの異なる正規表現を組み合わせるのに問題があります。次のテキストがあるとします。
これは文 1 です。これは文 2 です。これは3つです。これは4つです。そして、ペプシの真ん中のセンテンスは 5 です。ほら、6人?そして、これはここで7です!8番目の文はここにあります。そして九が最後です。
「ペプシ」が含まれる文と、その前の 3 つと次の 3 つを抜き出したい。
2文目です!これは3つです。これは4つです。そして、ペプシの真ん中のセンテンスは 5 です。ほら、6人?そして、これはここで7です!8番目の文はここにあります。
これにより、ペプシの文を引き出すことができます。
(?i)((?=[^.\n]*\bpepsi\b)[^.\n]+\.?)
これにより、ペプシ文と次の 3 つの文を引き出すことができます。
(?i)(?m)(?s)((((?=[^.?!\n]*\bpepsi\b)[^.\n]+[.?!]?){1})((?:\\s[a-z]\\.(?:[a-z]\\.)?|.)+?[.?!]+){3})
しかし、前の3つを引き出す方法がわかりません。最初の 3 つを引き出すことができます。
(?i)(?m)(?s)((?:\\s[a-z]\\.(?:[a-z]\\.)?|.)+?[.?!]+){3}
でも、ペプシのセンテンスと前の3つをやろうとすると、どうしてもできません...
そして、文にhtmlが混在する可能性があるため、正規表現が良い選択であるかどうか疑問に思い始めています。これらの正規表現は問題ないと思いますが、よくわかりません。