2010-12-16 2 views
1

Мне нужно получить от полного адреса последние слова, которые он содержит, после почтового индекса (который всегда должен быть в том же порядке).PHP PCRE - получить город с адреса

Пример адреса:

Av. Elias Garcia (em frente ao Restaurante Pote) Palhais 2815-233 Charneca da Caparica 

Мне нужно, чтобы получить эту часть:

Charneca da Caparica 

Wich, как вы можете видеть, это последние слова после почтового индекса:

2815-233 

Мне нужно выражение PCRE, чтобы соответствовать этому. Какие-либо предложения?

+1

Является ли почтовый индекс всегда «4 цифры - 3 цифры», только формат цифр? – deceze 2010-12-16 02:23:34

+0

Позитивный @deceze. Теперь, когда вы спросили, этот формат для Португалии. Надеюсь, это поможет кому угодно в будущем. – yoda 2010-12-16 02:34:23

ответ

3

Что-то подобное должно быть в состоянии это сделать.

preg_match('/\d{4}-\d{3}\s+(.*)/', $subject, $match); 
echo $match[1]; 

PS: Я бы не пытался разобрать это, используя рег ехр, потому что она не будет эффективной, что, если пользователь поставил город перед почтовым индексом. Если вы на 100% уверены в своих данных, все должно быть хорошо.

+0

@RageZ, хорошее обновление. Ваше первоначальное выражение было обратным. +1 на PS. Это очень специфическое регулярное выражение. – 2010-12-16 02:29:39

2

Это будет последняя часть строки после почтового индекса (4 цифры, тире, 3 цифры) и пробелов.

preg_match('/\s+\d{4}-\d{3}\s+(.+)$/', $address, $match); 
print_r($match); 
Смежные вопросы