Art*_*akk 2 ruby arrays string
假设我有一个像这样的字符串数组:
array = ["foo", "(bar)", "baaz", "quux", "herp", "(derp)"]
Run Code Online (Sandbox Code Playgroud)
我需要加入以"("与前一项开头的项目,以获得如下输出:
["foo (bar)", "baaz", "quux", "herp (derp)"]
Run Code Online (Sandbox Code Playgroud)
我想它必须是得到匹配的数组项索引,/^\(/然后迭代块中的原始数组,连接项目index-1..index,并删除atindex
array.slice_before{|s| !s.start_with?("(")}.map{|a| a.join(" ")}
# => ["foo (bar)", "baaz", "quux", "herp (derp)"]
Run Code Online (Sandbox Code Playgroud)
从另一个方向看它 - 连接整个字符串,然后沿着它们后面没有的空格拆分它(:
array.join(' ').split(/ (?!\()/)
# => ["foo (bar)", "baaz", "quux", "herp (derp)"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
565 次 |
| 最近记录: |