Reputation: 5715
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
Upvotes: 4
Views: 883
Reputation: 490223
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"
}
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 :)
Upvotes: 3
Reputation: 5695
To get vic with its value:
$getvic = substr($myString,-8,-7);
To get just VIC:
$getvic = substr($myString,-8,-2);
Upvotes: 0
Reputation: 38422
if it's always next-to-last, just split the string on space and take the penultimate element.
Upvotes: 3