Поскольку вы указали, что нужное значение всегда будет иметь «/» непосредственно перед ним (и ни один после него) и «_» сразу после него, вы можете использовать это универсальное регулярное выражение:
^.*/(.*)_.*$
Вот почему это будет работать:
^
соответствует началу строки
.*/
соответствует любому количеству символов до косой черты - это жадно, так что будет идти до последней косой черты во входном значении
(.*)
соответствует любому количеству символов и фиксирует результат
_.*
соответствует подчеркиванию, а затем любому количеству символов
$
соответствует концу строки
Сопоставляя что-либо с последним «/», а затем с любым символом после «_», вы легко изолируете желаемое значение.
ПРИМЕЧАНИЕ: я не знаю, отличается ли синтаксис регулярных выражений Ruby от этого, поэтому ваш пробег может отличаться.
-
РЕДАКТИРОВАТЬ: Похоже, в Ruby, вам не нужно / хотите ^
или $
в начале и в конце.