「比較」(これらの文字列間) により、次の 3 つの結果が得られます。
- 最初の文字列が 2 番目の文字列よりも「大きい」
- 最初の文字列は 2 番目の文字列よりも「少ない」
- 2 つの文字列は「同一」です
「大きい」、「小さい」、および「同一」の意味は、比較関数によって異なります。
おそらく「比較」は必要ありません。「2番目の段落が最初の段落よりも少ない」とはどういう意味ですか? 「コンピュータ制御システム」への参照がテキストのどこで使用されているかを知りたいと思われるでしょう。(論文が適切に参照されていれば、些細なことですが...)
これが実際に必要な場合は、人間としてこのタスクをどのように処理するかを理解する時が来ました。
私の最初のアプローチは、参照文字列を取ることです
string str = "Gopi, K.P., and Vijay, S. (1997) Computer Controlled Systems";
実際に何が関連しているかを確認します
string[] substrings = str.Split(new char[] { ' ', ',', '(', ')' });
この「コンピューター制御システム」ソースを参照する段落には、そのどこかに「Gopi and Vijay, 1997」が含まれている可能性があります。
string toFind = substrings[0] + " and " + substrings[5] + ", " + substrings[9];
次に、お気に入りのテキスト ビューアでテキストを開き、「Gopi and Vijay, 1997」を検索します。
string text = "It will cause numerical difficulty (Gopi and Vijay, 1997). What’s more, when the process constraints are activated, the significant deterioration of closed-loop control performance will be clearly witnessed as kind of nonlinearity is dominating the control system (Tenny, Rawlings, and Wright, 2004).";
int pos = text.IndexOf(toFind);
そして、試合の位置と少しのコンテキストの両方をどこかに保存します。
string match = "[...]" + text.Substring(Math.Max(pos - 50, 0), Math.Min(text.Length - pos, pos + toFind.Length + 50)) + "[...]";
次に、テキストで使用される可能性のある「Gopi」、「Vijay」、「1997」、および句読点の他の組み合わせがある可能性があることに気付くため、正規表現を調べ始めます。