1

我正在尝试提取逗号“,”和右括号“)”之间的字符串

这是下面的字符串...

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

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

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

这是通过以下正则表达式完成的(?<=,).*(?=\))

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

4

3 回答 3

2

如果您不想使用正则表达式,这也可以:

$string = "(Punta Gorda, FL, U.S.A.)";
$last_occurence = strrpos($string, ",");
$country = substr($string, $last_occurence + 1, strlen($string) - $last_occurence - 2);
于 2012-09-03T22:53:22.583 回答
1

改用这个:

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

请注意,您的正则表达式会在FL, U.S.A. 这个没有。

于 2012-09-03T22:48:25.730 回答
1

我会用这个正则表达式:

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

更新

$str = '(london, United kingdom)';

preg_match('~([^,]+)(?=\))~', $str, $matches);

var_dump($matches);
于 2012-09-03T22:49:06.503 回答