あなたが述べた3つのソリューションは、それぞれ非常に異なるニーズをカバーしています。
手動解析(単純なテキスト検索) は最も柔軟で適応性が高いですが、必要な解析がより複雑になるため、すぐに面倒な作業になります。
正規表現はその中間であり、おそらくここで最善の策です。これらは強力ですが、別の正規表現を呼び出すコードからロジックを自分で追加できるため、柔軟性があります。ここでの主な欠点は速度です。
Lex/Yaccは実際には、非常に複雑で予測可能な構文にのみ適応しており、コンパイル後の柔軟性があまりありません。解析中にパーサーを簡単に変更することはできませんが、実際には変更できますが、重すぎるため、代わりに正規表現を使用することをお勧めします。
私はこれが決まり文句の答えであることを知っています、それはすべてあなたの正確なニーズが何であるかにかかっていますが、あなたが言ったことから、私はおそらく正規表現のバッグを使うでしょう.
別の方法として、Vaibhav が指摘したように、発生する可能性のあるいくつかの異なる状況があり、どの状況が来るかを簡単に検出できる場合、適切なアルゴリズムを選択するプラグイン システムを作成でき、それらのアルゴリズムはすべて非常に異なる可能性があります。 1 つは先のとがったケースで Lex/Yacc を使用し、もう 1 つはより単純なケースで IndexOf と regex を使用します。