Используя регулярное выражение ruby, как мне сопоставить все слова в списке, разделенном запятой, но только в том случае, если слово whole содержит допустимые символы слова (т. Е. Буквенное число или подчеркивание). Например, с учетом строки:
"Смотри, Джейн, беги, r # un, j @ ne, r! N"
Я бы хотел подобрать слова
«Смотри», «Джейн» и «Беги»,
но не слова
'r # un', 'j @ ne' или 'r1n'.
Я не хочу совпадать с комой ... только сами слова.
Я начал регулярное выражение здесь: http://rubular.com/regexes/12126
s="see, jane, run, r#un, j@ne, r!n, fast" s.scan(/(?:\A|,\s*)(\w+)(?=,|\Z)/).flatten # => ["see", "jane", "run", "fast"]
другой способ
result = s.split(/[\s,]/).select{|_w| _w =~ /^\w+$/}