我正在尝试提取逗号“,”和右括号“)”之间的字符串
这是下面的字符串...
(Punta Gorda, FL, U.S.A.)
我希望从中提取U.S.A
我当前使用的正则表达式返回FL, U.S.A.
这是通过以下正则表达式完成的(?<=,).*(?=\))
修改正则表达式以实现我的目标的最简单方法是什么?
如果您不想使用正则表达式,这也可以:
$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]+)(?=\))
更新:
$str = '(london, United kingdom)';
preg_match('~([^,]+)(?=\))~', $str, $matches);
var_dump($matches);