简体   繁体   中英

Regular expression for getting string part

I have some string like

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

from these i need "VIC" . Can anyone help me to find out a solution using regex or php string function 在此输入图像描述

This is the actual strings... that read from an excel sheet i want the states name from these string like, NSW, ACT, VIC etc

如果它始终是倒数第二个,只需将空格上的字符串拆分并取倒数第二个元素。

preg_match_all('/(?P<state>[A-Z]{2,3})\s\d{4}$/m', $str, $matches);

var_dump($matches['state']);

Output

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

This uses a regex in multiline mode to match the 2 or 3 capital letters preceding a whitespace character and a 4 digit postcode.

I called it state because I live in Australia and these are all Australian states :)

To get vic with its value:

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

To get just VIC:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM