Regex для извлечения всех совпадений нескольких шаблонов из одной строки в Ruby - PullRequest
0 голосов
/ 05 февраля 2011

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

Учитывая короткую строку и несколько различных шаблонов, мне нужно извлечь все соответствующие шаблоны из строки,где каждый шаблон - это «целое слово».

Шаблоны: "YES", "NO", "MAYBE", любая последовательность звездочек ['*', '**', '***', '...'], любое число от 0 до 999, регистр не учитывается.

Итак, если s = 'foo yes and no doo 5 boo **** bar far 13 not but no', результат будет ["yes", "no", "5", "****", "13", "no"]

1 Ответ

3 голосов
/ 05 февраля 2011
s = 'foo yes and no doo 5 boo * *** bar far 13 not but no YESTERDAY'
ms = s.scan(/(?:\b(?:yes|no|\d{1,3})\b|\*+)/i)
ms # => ["yes", "no", "5", "*", "***", "13", "no"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...