Я использую Rails 5. У меня проблема с регулярным выражением. Я хочу написать выражение, которое будет анализировать строку, ища положительное число, а затем первое слово, которое следует за номером, независимо от того, существует ли пробел или другой тип границы слова между числом и следующим словом. Поэтому я пробовалКак написать регулярное выражение для захвата слова после номера?
2.4.0 :006 > str = "2g"
=> "2g"
2.4.0 :007 > str.match(/\W?(([0-9]+(\.[0-9]+)?)\W*(^[0-9:\/]+))/)
=> nil
, но, как вы видите, совпадений нет. Я ожидал бы, что матч зафиксирует «2», а затем «g». Точно так же, если у меня есть строка, как
2.4.0 :008 > str = "12.2 word next"
=> "12.2 word next"
2.4.0 :009 > str.match(/\W?(([0-9]+(\.[0-9]+)?)\W*(^[0-9:\/]+))/)
=> nil
Я ожидаю, что регулярное выражение захватить «12,2», а затем следующее слово «слово». Но, как вы видите, мое регулярное выражение не разрезает его. Как исправить это, чтобы зафиксировать то, что мне нужно?
пытается выбрать «12.2word» или «12.2 word» в «12.2 word next»? – MohaMad
Я хотел бы иметь что-то, что выбирает массив - первый элемент - это число, «12.2», а второй элемент - это слово, «слово» (т.е. [«12.2», «word»]) – Dave
Вы можете найти это в моем отредактированном ответе @Dave – MohaMad