繁体   English   中英

在Ruby中通过重复的正则表达式拆分字符串

[英]Splitting a string by a repeated regex in Ruby

我想解析文本并将其分为任务和子任务:

'Asubsubsubtask:Bsubtask:Ctask:D'.split(/((sub)*task)\:/i)
#=> ["A", "subsubsubtask", "sub", "B", "subtask", "sub", "C", "task", "D"]

结果数组的最后一部分不一致,并且不允许我使用#each_slice(3)处理数组。

您会建议我使用什么,而不用相似的正则表达式匹配数组的每个元素?

编辑1:

更详细的例子:

Task: Main
description
Defaults: some params

Subtask: Basic
description
Options: A B C

Subsubtask: Reading
description
Parameters: some params

我尝试用/^((sub)*task)\\:/i拆分它

将其分为两个split调用:

irb(main):007:0> 'Asubsubsubtask:Bsubtask:Ctask:D'.split(':').collect{|s| s.split(/((sub)*task)/i)}
=> [["A", "subsubsubtask", "sub"], ["B", "subtask", "sub"], ["C", "task"], ["D"]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM