Регулярное выражение для получения строковой части - PullRequest
4 голосов
/ 19 апреля 2011

У меня есть строка вроде

Shp 1,737 Plenty Rd, Mill Park VIC 3082
560 High St, Preston VIC 3072
217 Mickleham Rd, Tullamarine VIC 3043

из этих мне нужно "VIC". Может ли кто-нибудь помочь мне найти решение, используя функцию регулярного выражения или PHP строки enter image description here

Это фактические строки ... которые читаются из листа Excel. Я хочу, чтобы названия состояний из этой строки были такими, как NSW, ACT, VIC и т. Д.

Ответы [ 3 ]

3 голосов
/ 19 апреля 2011
preg_match_all('/(?P<state>[A-Z]{2,3})\s\d{4}$/m', $str, $matches);

var_dump($matches['state']);

Выходные данные

array(3) {
    [0]=>
    string(3) "VIC"
    [1]=>
    string(3) "VIC"
    [2]=>
    string(3) "VIC"
}

Используется регулярное выражение в многострочном режиме для сопоставления 2 или 3 заглавных букв, предшествующих пробелу, и 4-значного почтового индекса.

Я назвал егоstate потому что я живу в Австралии, и это все австралийские штаты:)

3 голосов
/ 19 апреля 2011

, если он всегда следующий за последним, просто разбейте строку на пробел и возьмите предпоследний элемент.

0 голосов
/ 19 апреля 2011

Чтобы получить значение вика:

$getvic = substr($myString,-8,-7);

Чтобы получить только VIC:

$getvic = substr($myString,-8,-2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...