私はカスタム言語用のpythonicパーサーを書いていますが、今のところ次のようなものがあります:
re1 = re.compile(r"...")
re2 = re.compile(r"...")
re3 = re.compile(r"...")
re4 = re.compile(r"...")
...
...
今、入力ファイルを読んでいます。特定のキーワードが見つかった場合は、各行で特定の正規表現を使用しています。明らかに、私はこのようなことをしているので、これは私の人生を生き地獄にしています:
if line.find("keyword1") >= 0
# Uses re1 to match the string
invoke_handler1()
elif line.find('keyword2") >= 0
# Uses re2 to match the string
invoke_handler2()
...
同時に、指定された行を可能なすべての正規表現と一致させたくありません。それは無駄になるからです。この時点までに書いたことをすべて破棄せずに、この問題を解決し、より効率的で読みやすいものにするエレガントな方法はありますか?