如何将有效单词与ruby正则表达式匹配

时间:2009-12-02 18:43:29

标签: ruby regex

使用ruby正则表达式,如何匹配逗号分隔列表中的所有单词,但只有在整个单词包含有效单词字符(即:字母数字或下划线)时才匹配。例如,给定字符串:

  

“看,jane,run,r#un,j @ ne,r!n”

我想匹配单词

  

'看','简'和'跑',

但不是单词

  

'r#un','j @ ne'或'r1n'。

我不想与昏迷相匹配......只是单词本身。

我在这里开始使用正则表达式:http://rubular.com/regexes/12126

2 个答案:

答案 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+$/}