0

住所から6桁の郵便番号を取得する必要があります。

"51 Bras Basah Road#01-01 Manulife Center Singapore 189554"

郵便番号は常に6桁ですが、住所の最後にあるとは限りません。

上記の住所から郵便番号を取得するための適切な「java」正規表現を提供するのを手伝ってください。

Asmi

4

3 に答える 3

6

郵便番号が入力の6桁の数字だけであることが確実な場合は、次のことを回避できるはずです。

Pattern zipPattern = Pattern.compile("(\\d{6})");
Matcher zipMatcher = zipPattern.matcher("51 Bras Basah Road #01-01 Manulife Centre Singapore 189554");
if (zipMatcher.find()) {
    String zip = zipMatcher.group(1);
}

java.util.regex.PatternのAPIドキュメントも参照してください。

于 2013-01-10T07:43:23.493 に答える
0

最後の6桁の数字を見つける正規表現は次のとおりです。

((\d{6}.*)*\s)?(\d{6})([^\d].*)?$

もちろん、パターンをコンパイルするときは文字列をエスケープする必要があります。

Pattern postal_code_group3 = Pattern.compile("((\\d{6}.*)*\\s)?(\\d{6})([^\\d].*)?$");

一致するグループ3から郵便番号を取得できます。

文字列が郵便番号で始まらない限り、グループ2は郵便番号の前に空白を強制することに注意してください。

グループ4は、郵便番号の後のすべてを処理し、末尾の7桁以上の数字が郵便番号として一致するのを防ぎます。

于 2013-01-10T08:25:42.920 に答える
0

これが単純な正規表現です

(。*)((\ d){6})$

最初のグループは「51BrasBasahRoad#01-01 Manulife Center Singapore」です。2番目のグループは郵便番号(6桁)です。

于 2013-01-10T07:51:28.143 に答える