匹配_()_中的最后一个组与Ruby中的正则表达式

时间:2011-01-13 13:32:56

标签: ruby regex

我需要提取_()_中包含的子串的最后一次出现,例如

'a_long_(abc)_000' => abc
'a_long(string)_(def)_000' => def
'a_long_(string)_(abc)_blabla' => abc

4 个答案:

答案 0 :(得分:2)

像这样的Smth:

str[/.*_\((.*?)\)_/,1]

答案 1 :(得分:2)

使用/_\((.*?)\)_/进行匹配并抓住最后一场比赛:

>> 'a_long_(string)_foo_(abc)_blabla'.scan(/_\((.*?)\)_/)[-1]
=> ["abc"]

答案 2 :(得分:1)

您也可以使用正则表达式:

.*_\((.*?)\)_

See it

答案 3 :(得分:0)

这个:

\(([^\)]+)\)_[a-zA-Z0-9]*$

$1应该是你的字符串