したがって、単一の正規表現を使用して数ビットのデータを抽出する長い入力文字列があります。入力はクライアントによって提供され、正規表現が一致するために必要なだけでなく (そうです)、この正規表現が構築するデータベースに不可欠な重要な部分をしばしば忘れます。
入力のどこで一致が失敗し始め、その理由を指摘できるようにしたいと思います(正規表現が次に何を期待していたかを示します)。
パフォーマンスが問題です。正規表現には複数のフィールドが含まれているため、これをいくつかの個別の正規表現一致に分割することは禁止されている場合があります。
これが本物のカットダウンバージョンです:
^(?:(?P<doors>\d) Doors).*(?P<transmission>Automatic|Manual)
いくつかのサンプル入力 (および必要な出力):
"3 Doors blah blah blah Manual" # match!
"Guadeloupe blah blah blah Sneezes" # Reply: Missing doors
"2 Doors blah blah blah Psychic" # Reply: Missing transmission