Как мне сопоставить допустимые слова с регулярным выражением ruby? - PullRequest
0 голосов
/ 02 декабря 2009

Используя регулярное выражение ruby, как мне сопоставить все слова в списке, разделенном запятой, но только в том случае, если слово whole содержит допустимые символы слова (т. Е. Буквенное число или подчеркивание). Например, с учетом строки:

"Смотри, Джейн, беги, r # un, j @ ne, r! N"

Я бы хотел подобрать слова

«Смотри», «Джейн» и «Беги»,

но не слова

'r # un', 'j @ ne' или 'r1n'.

Я не хочу совпадать с комой ... только сами слова.

Я начал регулярное выражение здесь: http://rubular.com/regexes/12126

Ответы [ 2 ]

6 голосов
/ 02 декабря 2009
s="see, jane, run, r#un, j@ne, r!n, fast"
s.scan(/(?:\A|,\s*)(\w+)(?=,|\Z)/).flatten
# => ["see", "jane", "run", "fast"]
0 голосов
/ 02 декабря 2009

другой способ

result = s.split(/[\s,]/).select{|_w| _w =~ /^\w+$/}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...