0

私のアプリでは、文字列を送信する前に、テキスト ボックスに入力されたテキストが英国の郵便番号であるかどうかを調べる必要があります。私は自分でそれを解決する正規表現能力を持っていません。周りを検索した後、解決できないようです! 誰かが過去に同様のことをしたかどうか疑問に思いましたか?

または、誰かが私を正しい方向に向けることができれば、私は最も感謝しています!

トム

4

4 に答える 4

3

ウィキペディアにはこれについての良いセクションがあります。基本的に、答えはあなたが扱いたい病理学的症例の種類に依存します。例えば:

BS7666スキーマの代替の短い正規表現は次のとおりです。

[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}

上記の式では、存在しない多くの市外局番(A、AA、Z、ZYなど)を除外できません。

基本的に、ウィキペディアのそのセクションをよく読んで、必要なものを決定してください。

于 2011-12-14T15:31:54.750 に答える
3

スペースなしの郵便番号 (例: 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})$
于 2011-12-14T16:22:27.643 に答える
1

ほとんどの郵便番号は、次の正規表現で照合できます。

/[A-Z]{1,2}[0-9]{1,2}\s?[0-9]{1,2}[A-Z]{1,2}/i

正規表現の視覚化

つまり... A-Z1 回または 2 回 ( {1,2}) の後に1 回または 2 回、その後にオプション0-9でスペースが続き、その後に 1回または 2 回、その後に1 回または 2 回続きます。\s?0-9A-Z

のような郵便番号を作成できるため、これはいくつかの誤検出と一致しますがZZ00 00ZZ、すべての郵便番号を正確に一致させるには、郵便局から郵便番号データを購入するしかありません。これは非常に高価です。無料の郵便番号データベースをダウンロードすることもできますが、100% の範囲ではありません。

お役に立てれば。

于 2011-12-14T15:35:35.640 に答える
0

ウィキペディアには、英国の郵便番号の正規表現がいくつかあります:http: //en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom#Validation

于 2011-12-14T15:31:15.347 に答える