正規表現を使用して、このような文字列から結果の配列を作成したい:
results|foofoofoo\nresults|barbarbarbar\nresults|googoogoo\ntimestamps||friday
これが私の正規表現です。Sublime Text の正規表現検索では機能しますが、Ruby では機能しません。
(results)\|.*?\\n(?=((results\|)|(timestamps\|\|)))
これは望ましい結果です。
1. results|foofoofoo
2. results|barbarbar
3. results|googoogoo
代わりに、私はこれらの奇妙なリターンを得ていますが、それを理解することはできません. 結果の行が選択されないのはなぜですか?
Match 1
1. results
2. results|
3. results|
4.
Match 2
1. results
2. results|
3. results|
4.
Match 3
1. results
2. timestamps||
3.
4. timestamps||
正規表現を使用した実際のコードは次のとおりです。
#create new lines for each regex'd line body with that body set as the raw attribute
host_scan.raw.scan(/(?:results)\|.*?\\n(?=((?:results\|)|(?:timestamps\|\|)))/).each do |body|
@lines << Line.new({:raw => body})
end