私のアプリでは、文字列を送信する前に、テキスト ボックスに入力されたテキストが英国の郵便番号であるかどうかを調べる必要があります。私は自分でそれを解決する正規表現能力を持っていません。周りを検索した後、解決できないようです! 誰かが過去に同様のことをしたかどうか疑問に思いましたか?
または、誰かが私を正しい方向に向けることができれば、私は最も感謝しています!
トム
私のアプリでは、文字列を送信する前に、テキスト ボックスに入力されたテキストが英国の郵便番号であるかどうかを調べる必要があります。私は自分でそれを解決する正規表現能力を持っていません。周りを検索した後、解決できないようです! 誰かが過去に同様のことをしたかどうか疑問に思いましたか?
または、誰かが私を正しい方向に向けることができれば、私は最も感謝しています!
トム
ウィキペディアにはこれについての良いセクションがあります。基本的に、答えはあなたが扱いたい病理学的症例の種類に依存します。例えば:
BS7666スキーマの代替の短い正規表現は次のとおりです。
[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}
上記の式では、存在しない多くの市外局番(A、AA、Z、ZYなど)を除外できません。
基本的に、ウィキペディアのそのセクションをよく読んで、必要なものを決定してください。
スペースなしの郵便番号 (例: SE19QZ) の場合: (まだ失敗していません ;-) )
^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})
スペース (例: SE1 9QZ) の場合:
^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$
ほとんどの郵便番号は、次の正規表現で照合できます。
/[A-Z]{1,2}[0-9]{1,2}\s?[0-9]{1,2}[A-Z]{1,2}/i
つまり... A-Z
1 回または 2 回 ( {1,2}
) の後に1 回または 2 回、その後にオプション0-9
でスペースが続き、その後に 1回または 2 回、その後に1 回または 2 回続きます。\s
?
0-9
A-Z
のような郵便番号を作成できるため、これはいくつかの誤検出と一致しますがZZ00 00ZZ
、すべての郵便番号を正確に一致させるには、郵便局から郵便番号データを購入するしかありません。これは非常に高価です。無料の郵便番号データベースをダウンロードすることもできますが、100% の範囲ではありません。
お役に立てれば。
ウィキペディアには、英国の郵便番号の正規表現がいくつかあります:http: //en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom#Validation