PHP:匹配字符串中最后的parethesized单词?

时间:2014-12-22 15:04:05

标签: php regex

$string = 'Foo (Bar) (Baz)'
preg_match('#\((.*?)\)#', $string, $match);

在上面的PHP中,$ match以

的形式返回
array ( 0 => '(Bar)', 1 => 'Bar', )

是否可以更改正则表达式以便返回:

array ( 0 => '(Baz)', 1 => 'Baz', )

.i.e。括号中的最后一个字。

感谢。

3 个答案:

答案 0 :(得分:0)

#.*\((.*?)\)#

试试这个。这应该这样做。

#\((.*?)\)(?!.*\()#

答案 1 :(得分:0)

你可以使用这个使用前瞻和后面的正则表达式来使它更清晰

/(?<=\()(.*?)(?=\($)/

答案 2 :(得分:0)

这就是我要做的事情:

\(((?!.*\().*?)\)

Regular expression visualization

Debuggex Demo