これを正規表現でやろうとしないことをお勧めします。1を倒すのは簡単すぎる。代わりに、自分が何をしているかを知っている人に問題を外注する必要があります。この場合、米国の住所のみを扱っているため、USPS .
そのため、 USPS 住所標準化/検証 APIを使用する必要があります。アドレスを送信すると、そのアドレスの「クリーンな」バージョンが返されます。アドレスが有効かどうかが表示されます。また、それが私書箱の場合は、標準化された形式で返されます。今では、無効にできる正規表現は必要ありません。必要なのは、単純な文字列の一致だけです。さらに、おまけとして、配送先住所の標準化および検証済みの表現が得られるため、エラーの可能性が2減少します。
私はあなたの実際の技術的な質問を回避していることを認識しています. しかし、エンジニアリングの一部は、間違った道であるソリューションを放棄しています。アドレスを検証する必要があります。したがって、私書箱を表す一部の入力を検出できるが、他の入力では失敗するステート マシンを構築しようとするのではなく、住所を検証します。また、USPS は検証サービスを提供しており、彼らはここで信頼できる専門家です。
1 : 敵対者に直面すると言っているのではありません。ただ、人々がアドレスを入力するために持っている創造的でずさんで怠惰な方法に直面することになるだけです。
2 : ただし、排除しない。