今日、英国の郵便番号を検証するために次の正規表現を使用してPerl5Compiler
いたレガシーコードのバグに遭遇しました。Perl5Matcher
((?i)(([A-Z]{2}[0-9]{1,2})|([A-Z]{1,2}[0-9][A-Z])|([A-Z][0-9]{1,2}))\\s([0-9][A-Z]{2})|(BFPO\\s\\d{1,4})|(GIR\\s0AA))
ただし、「G12 4NNT」などの郵便番号については正しく検証できませんでした(この場合、最後のセクションは数字とそれに続く2文字のみが許可されます)。java.util.regex.Pattern
上記の正規表現を正しく使用し、すべての単体テストに合格するクラスを 使用して、これを修正しました。
しかし、なぜそれがうまくいかなかったのか興味がありPerl5
ます。2つのAPIで使用される正規表現構文と基本的な違いはありますか?