regexp用逗号和空格分割字符串,但忽略带连字符的单词?

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

标签: ruby regex

我需要一个正则表达式来用逗号和/或空格分割字符串,但忽略带连字符的单词 - 最好的方法是什么?

所以,例如 - 我喜欢这个......

"foo bar, zap-foo, baz".split(/[\s]+/)

返回

["foo", "bar", "zap-foo", "baz"]

但是当我这样做时,它包括这样的逗号......

["foo", "bar,", "zap-foo,", "baz"]

4 个答案:

答案 0 :(得分:34)

"foo bar, zap-foo, baz".split(/[\s,]+/)

答案 1 :(得分:5)

您可以指定一个字符类,该字符类表示要拆分非连字符或单词字符:

"foo bar, zap-foo, baz".split(/[^\w-]+/)

或者您可以使用像Ocson has provided这样的字符类在空格和逗号上进行拆分。

答案 2 :(得分:3)

或者如果你想真正明确分隔符:

"foo bar, zap-foo, baz".split(/ |, |,/)

=> ["foo", "bar", "zap-foo", "baz"]

答案 3 :(得分:2)

"foo bar, zap-foo, baz".split(/[\s.,]+/)