これが取引です。複数の正規表現に基づいて行で文字列をトークン化する方法はありますか?
一例:
すべての href タグ、対応するテキスト、および別の正規表現に基づくその他のテキストを取得する必要があります。したがって、3 つの式があり、行をトークン化し、すべての式に一致するテキストのトークンを抽出したいと考えています。
私は実際に、古き良き lex の実装である flex (Adobe と混同しないでください) を使用してこれを行いました。lex は、式に基づいて「アクション」を実行することにより、これを行うエレガントな方法を提供します。lex がファイルを読み取る方法も制御できます (ブロック/行ベースの読み取り)。
問題は、flex が実際にトークン化ジョブを実行する C/C++ コードを実際に生成することです。これらすべてをラップするmakeファイルがあります。perl /python が何らかの方法で同じことをできるかどうか疑問に思っていました。好きなことをすべて単一のプログラミング言語で行いたいというだけです。
トークン化は、アプリケーションの一部としてやりたいことの 1 つにすぎません。
perl または python とは別に、どの言語 (関数型も) でこれを行うことができますか?
ここでPLYとANTLRについて読みました(解析、どこで学べますか)。
しかし、Python自体で自然に行う方法はありますか? 無知で申し訳ありませんが、これらのツールは一般的な製品やサービスで使用されていますか?
ありがとうございました。