2017-03-17 11 views

答えて

1

が先読み((?=)に後読み((?<=)を変更する第二部では、私は

line.split(/(?<=#{Regexp.escape(split_token)})/) 

を持っていますが、トークンはtehの分割の最初の部分にマージなっていると私はそれをしたいことはあるようですトリック:

split_token = "aaa" 
line = "bbb aaa ccc" 
line.split(/(?=#{Regexp.escape(split_token)})/) 
# => ["bbb ", "aaa ccc"] 

これは、スプリットポイントをそれより後ではなくトークンの前に変更するだけです。

0

もう一つの可能​​性はslice_beforeを使用することです:

line.split.slice_before('aaa').map{|s| s.join(' ')} 
関連する問題