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

时间:2012-09-03 22:43:19

标签: php regex

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

这是下面的字符串......

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

从此我想提取U.S.A

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

使用以下正则表达式(?<=,).*(?=\))

完成此操作

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

改为使用这个:

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

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

答案 2 :(得分:1)

我会选择这个正则表达式:

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

<强> UPD

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

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

var_dump($matches);