我正在尝试提取一个介于逗号","和右括号")"之间的字符串
这是下面的字符串。。。
(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);