У меня есть 2 случая строк мне нужно GSUB:как условно заменить префикс или префикс/суффикс GSUB
префикс всегда одинаков: бывший xxx
средний может быть hhh
или yyy
'xxx-hhh-111'
'xxx-yyy-aaa'
Что мне нужно делать в обоих случаях всегда удалить префикс: xxx
так это работает отлично:
'xxx-yyy-aaa'.gsub('xxx', '')
результат:
'-yyy-aaa'
, но иногда мне нужно проверить, является ли тело hhh
и если это правда, то удалить префикс и суффикс (рисунок является то, что суффикс будет случайных цифр)
Я думаю, Я могу выполнить это с помощью регулярных выражений, любых мыслей?
так что результат я искал, когда строка xxx-hhh-111
является:
'hhh'
Самый простой способ будет 2 заявления, один первый всегда извлекая ххх, который я использую выше
и один раз проверить, если hhh
существует, и если да вернуться hhh
Ex:
if 'xxx-hhh-111'.include('hhh')
'hhh'
, но если я могу выполнить бот ч случаи с 1 заявление, было бы неплохо ...
[ ' 'ххх-ууу-111'.match /xxx(.*)- 111/'] (https://repl.it/BXN2/1) – potashin
извините, пришлось исправить свой вопрос ... но .match приятно, не знал о, будет исследовать – Bodao
['^xxx (?: (- (?! HHH) [^ -] * - [^ -] *) | - (HHH) - [^ -] *) $ '] (https://regex101.com/r/hA9qT1/1). [Ruby demo] (http://ideone.com/Dbea3e). –