0
で繰り返し正規表現によって文字列:分割私はテキストを解析し、タスクとサブタスクに分離したいRubyの
'Asubsubsubtask:Bsubtask:Ctask:D'.split(/((sub)*task)\:/i)
#=> ["A", "subsubsubtask", "sub", "B", "subtask", "sub", "C", "task", "D"]
結果配列の最後の部分は一貫していないと私がすることはできません。配列を処理する#each_slice(3)
を使用してください。
配列の各要素を似たような正規表現でマッチングさせる代わりに、私は何をお勧めしますか?
EDIT1:
より詳細な例:
Task: Main
description
Defaults: some params
Subtask: Basic
description
Options: A B C
Subsubtask: Reading
description
Parameters: some params
と私は2つのsplit
通話に分離/^((sub)*task)\:/i
@marcog、感謝!テキストには他のキーワードがありますが、これはタスクに分割して解析したいものです。一般形 '/ ^([a-z])\:/ i' – Andrei
@Andrei他のキーワードはどこですか?例を挙げてください。 – marcog
@marcog、ちょうどそれをやった。更新された質問をご覧ください。私は「タスク」で分割し、それぞれを「(サブ)*タスク」で分割したほうが良いと思います。問題が解決します。 – Andrei