Rya*_*ing 2 ruby regex string split ruby-on-rails
我正在尝试将字符串"[test| blah] [foo |bar][test|abc]"拆分为以下数组:
[
["test","blah"]
["foo","bar"]
["test","abc"]
]
Run Code Online (Sandbox Code Playgroud)
但我无法正确表达我的正则表达式.
红宝石:
@test = '[test| blah] [foo |bar][test|abc]'.split(%r{\s*\]\s*\[\s*})
@test.each_with_index do |test, i|
@test[i] = test.split(%r{\s*\|\s*})
end
Run Code Online (Sandbox Code Playgroud)
我不在那里,这回来了:
[
[ "[test" , "blah" ]
[ "foo" , "bar" ]
[ "test" , "abc]" ]
]
Run Code Online (Sandbox Code Playgroud)
实现这一目标的正确正则表达式是什么?如果我还可以考虑新线路,那会很棒,比如说:"[test| blah] \n [foo |bar]\n[test|abc]"
最好String#scan用于此:
> "[test| blah] \n [foo |bar]\n[test|abc]".scan(/\[(.*?)\s*\|\s*(.*?)\]/)
=> [["test", "blah"], ["foo", "bar"], ["test", "abc"]]
Run Code Online (Sandbox Code Playgroud)