アプリのある時点で、いくつかの文字列をパターンと照合する必要があります。サンプル文字列の一部が次のようになっているとします。
- こんにちは、ジョン。
- 今日はなんて素敵な日でしょう!
- ジョン、今日の夕日は素敵ですね。
- ジョン、今日リンダに会える?
これらの文字列のほとんど (すべてではない) は、次のように事前定義されたパターンからのものです。
- 「やあ、%s。」
- 「今日はなんて素敵な日でしょう!」
- 「今日の夕日、%s ですね。」
- 「今日 %s に会いませんか、%s?」
このパターンのライブラリは拡大し続けています (現在約 1,500) が、手動で維持されています。ただし、入力文字列 (最初のグループ) はほとんど予測できません。それらのほとんどはいずれかのパターンに一致しますが、一致しないものもあります。
そこで、私の質問は次のとおりです。(最初のグループの) 文字列が入力として与えられた場合、それがどのパターン (既知の 2 番目のグループ) に一致したかを知る必要があります。何も一致しない場合は、それを教えてくれる必要があります。
解決策には、パターンから正規表現を構築し、どれが一致したかを繰り返し確認することが含まれると思います。ただし、これらの正規表現を構築するコードがどのように見えるかはわかりません。
注: ここで指定した文字列は、説明のためのものです。実際には、文字列は人間が生成したものではありませんが、私が制御していないシステムから上に示したように、コンピューターが生成した人間に優しい文字列です。手動で入力しないため、タイプミスやその他の人的ミスなどを心配する必要はありません。一致するパターンを見つけるだけです。
注 2: 正規表現の作成が容易になる場合は、パターン ライブラリを他の形式に変更できます。printf スタイル %s を使用した現在の構造は、確定していません。