以下のコードは、より大きなアプリケーションに統合する予定の次の機能を実行しています。
- 大きな入力文字列
input
を、入力文字列内の任意の場所でドット(。)文字で分割します。 - 分割された部分文字列を配列に格納し
result[]
ます; - foreachループでは、 キーワードの出現に対して部分文字列が照合されます。
一致が発生した場合、元の入力文字列内のこの一致したサブ文字列の位置から開始して、最大300文字が印刷されます。
string[] result = input.Split('.'); foreach (string str in result) { //Console.WriteLine(str); Match m = Regex.Match(str, keyword); if (m.Success) { int start = input.IndexOf(str); if ((input.Length - start) < 300) { Console.WriteLine(input.Substring(start, input.Length - start)); break; } else { Console.WriteLine(input.Substring(start, 300)); break; } }
実際、入力は大量のテキストであり、これは正規表現で行う必要があると思います。初心者なので、正規表現を使ってすべてをまとめることはできません。
キーワードに一致します。Match m = Regex.Match(str, keyword);
ドット(。)から始まる300文字、つまり一致した文から始まり、300文字を印刷します"^.\w{0,300}"
私がやろうとしていることは:
入力テキストでキーワードを検索します。
一致するものが見つかったのと同じように、キーワードを含む文から開始し、入力文字列から最大300文字を出力します。
どうすればいいですか?助けてください 。