2016-05-09 2 views

ответ

2

струны [] и простое регулярное выражение будет делать это:

'ucp-1.1.0_dtr-2.0.0'[/[\d.]+/] # => "1.1.0" 

Это работает, потому что поиск прекращается, как только он совпадает, так что первое появление выигрывает в результате 1.1.0.

Если вы хотите второе/последнее вхождения затем добавление $ говорит регулярное выражение двигатель смотреть только в конце линии для шаблона согласования:

'ucp-1.1.0_dtr-2.0.0'[/[\d.]+$/] # => "2.0.0" 

Regexp documentation покрывает все это.

0

substring = "ucp-1.1.0_dtr-2.0.0".gsub('ucp-','').split("_").first подследственных.

0

Постарайся это (проверено):

"ucp-1.1.0_dtr-2.0.0".match(/^.-(.)_.-.$/)[1]

0

с использованием регулярных выражений с методами рубин строки вы можете добиться этого ..

"ucp-1.1.0_dtr-2.0.0"

version = "ucp-1.1.0_dtr-2.0.0".scan(/[0-9_]/).join(".").split("_").first.slice(0..-2) 

Или с вашим кодом, вы можете попробовать это ..

substring = "ucp-1.1.0_dtr-2.0.0".gsub('ucp-','').split("_").first 
Смежные вопросы