Регулярное выражение для проверки, имеет ли строка определенное количество цифр - PullRequest
1 голос
/ 22 августа 2011

У меня есть информация об адресе и некоторый мусор в моей БД, и я должен просто проверить, есть ли у строки почтовый индекс, мне нужно обработать это.Можете ли вы объяснить, как проверить, есть ли в строке 5 цифр?Например,

String addr = 10100 Trinity Parkway, 5th Floor Stockton, CA 95219; 

Таким образом, она должна соответствовать этой строке, поскольку она имеет 5-значный почтовый индекс.Любой способ проверить, используя регулярное выражение Java?

Обновление:

String addr = "10100 Trinity Parkway, 5th Floor Stockton, CA 95219"; 
String addressMatcher = "\\d{5}";
if(addr.matches(addressMatcher)){
System.out.println(addr);
}

Выше приведен код, который я использую после получения ответов, но ни одно из регулярных выражений не соответствует и не печатает адрес.Я делаю что-то не так?С уважением, Картик

Ответы [ 2 ]

9 голосов
/ 22 августа 2011

Простое выражение - ".*\\d{5}$", которое говорит, что вы хотите любой символ 0 или более раз, затем любую цифру 5 раз, а затем конец строки. Обратите внимание, что это объясняет необходимость избежать косой черты в строке Java.

Если у вас может быть больше символов в конце строки, вы можете добавить .* к выражению, чтобы соответствовать им. Однако это может также привести к совпадению числа в адресах, поэтому убедитесь, что ваши данные находятся в согласованном, ожидаемом формате.

Регулярных выражений в этом случае может быть недостаточно, поскольку не все 5-значные числа на самом деле являются почтовыми индексами. Кроме того, некоторые почтовые индексы могут включать дополнительные цифры (обычно после - после первых пяти цифр.)

0 голосов
/ 22 августа 2011

Я не совсем уверен, что это то, что вы ищете:

* * Тысяча два (\ ш \ S *) + (\ S * (\ ш \ S *) ,) \ S * [AZ] {2} \ S * [1-9] {5 }

Это выражение будет соответствовать:
1 - любые слова с любыми пробелами, за которыми следует запятая,
2 - затем необязательные повторения слов, разделенных пробелами и запятой
3 - в конце он заканчивается двумя символами слова (код состояния), за которым следует почтовый индекс, состоящий из 5 цифр (ненулевых цифр)
Я надеюсь, что эта помощь

[Редактировать]
Это выражение будет отфильтровывать числа в адресе, которые находятся не в том месте, где должен быть почтовый индекс, как, например, (10100) в вашем примере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...