Как взорвать строку с почтовым индексом и города, включая диакритические знаки по php

Я хочу разбить строку с помощью почтового индекса и города, например, у меня есть следующие данные:

  • 60200 Praha
  • 73000 Валашске Мезиржичи
  • 641 02 Nové Město nad Metují и др.

Теперь мне нужна переменная $zipcode с почтовым индексом из строки и $town переменная с названием города из строки. Пример:

  • $ zipcode = 60200, $ town = Praha
  • $ zipcode = 73000, $ town = Валашске Мезиржичи
  • $zipcode = 641 02, $town = Новое место над Метуей

1 ответ

Регулярное выражение может быть ^(\d{3} ?\d{2}) (.*)$

$inputs = [
    '60200 Praha',
    '73000 Valašské Meziříčí',
    '641 02 Nové Město nad Metují'
];

foreach ($inputs as $row) {
    preg_match('~^(\d{3} ?\d{2}) (.*)$~', $row, $matches);
    print_r($matches);

    // $matches[1] - zipcode
    // $matches[2] - city
}
Другие вопросы по тегам