Ruby正则表达式拆分换行符,空格或逗号

时间:2011-02-14 20:00:48

标签: ruby regex

输入:

     f = ["happy days",
         "happy\ndays",
         "happy,days",
         "happy, days"]

     patt = /some_regex/

f patt上分割每个字符串后,我想要的输出是[“happy”,“days”]。

非常感谢!

6 个答案:

答案 0 :(得分:12)

试试这个模式:

/\W+/

它匹配任意数量的非单词字符。

示例代码:

result = f.map{|s| s.split(/\W+/) }

查看在线工作:ideone

答案 1 :(得分:5)

答案 2 :(得分:3)

试试这个:

f.map{ |s| s.split /[,\s]+/}

=> [["happy", "days"], ["happy", "days"], ["happy", "days"], ["happy", "days"]]

答案 3 :(得分:1)

循环遍历数组,使用String#scan查找单词:

f = [
  "happy days",
  "happy\ndays",
  "happy,days",
  "happy, days"
]

require 'pp'
pp f.map{ |s| s.scan(/\w+/) }

>> [["happy", "days"], ["happy", "days"], ["happy", "days"], ["happy", "days"]]

答案 4 :(得分:0)

irb(main):242:0> "a\nb".split(/\n/)
[
    [0] "a",
    [1] "b"
]

答案 5 :(得分:0)

如果您需要拆分“逗号空格”或“换行符”,请尝试使用

  

“你的字符串”.replace(/ ^ \ s + $ / mg,'\ n')。replace(/(,\ s)| \ n + / gm,   '〜')。分裂( '〜')

基本上这个特殊的正则表达式会有所帮助

  

/(,\ S)| \ N + /克