使用ruby正则表达式,如何匹配逗号分隔列表中的所有单词,但只有在整个单词包含有效单词字符(即:字母数字或下划线)时才匹配。例如,给定字符串:
“看,jane,run,r#un,j @ ne,r!n”
我想匹配单词
'看','简'和'跑',
但不是单词
'r#un','j @ ne'或'r1n'。
我不想与昏迷相匹配......只是单词本身。
我在这里开始使用正则表达式:http://rubular.com/regexes/12126
答案 0 :(得分:6)
s="see, jane, run, r#un, j@ne, r!n, fast"
s.scan(/(?:\A|,\s*)(\w+)(?=,|\Z)/).flatten
# => ["see", "jane", "run", "fast"]
答案 1 :(得分:0)
另一种方式
result = s.split(/[\s,]/).select{|_w| _w =~ /^\w+$/}