返回字符最后一次出现之间的字符串


returning string between last occurrence of a character

我正在尝试提取一个介于逗号","和右括号")"之间的字符串

这是下面的字符串。。。

(Punta Gorda, FL, U.S.A.)

我希望从中提取U.S.A

我当前使用的正则表达式返回FL, U.S.A.

这是使用以下正则表达式(?<=,).*(?=')) 完成的

为了实现我的目标,修改正则表达式最简单的方法是什么?

如果您不想使用Regex,这也可以:

$string = "(Punta Gorda, FL, U.S.A.)";
$last_occurence = strrpos($string, ",");
$country = substr($string, $last_occurence + 1, strlen($string) - $last_occurence - 2);

改为使用这个:

(?<=,'s)[^,]*(?='))

请注意,正则表达式将在FL, U.S.A之前返回空白。这个没有。

我会使用这个正则表达式:

([^,'s]+)(?='))

UPD

$str = '(london, United kingdom)';
preg_match('~([^,]+)(?='))~', $str, $matches);
var_dump($matches);