Сопоставить последнюю группу в _ () _ с регулярным выражением в Ruby - PullRequest
3 голосов
/ 13 января 2011

Мне нужно извлечь последнее вхождение подстроки, заключенной в _()_, например,

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

Ответы [ 4 ]

2 голосов
/ 13 января 2011

Совпадение с использованием /_\((.*?)\)_/ и получение последнего совпадения:

>> 'a_long_(string)_foo_(abc)_blabla'.scan(/_\((.*?)\)_/)[-1]
=> ["abc"]
2 голосов
/ 13 января 2011

что-то вроде этого:

str[/.*_\((.*?)\)_/,1]
1 голос
/ 13 января 2011

Вы также можете использовать регулярное выражение:

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

Посмотреть

0 голосов
/ 13 января 2011

Вот это:

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

$1 должна быть вашей строкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...