0

私はこのセットを持っています(ポイント数は可変です、ここでは2):

A 
 This is some Text belonging to A
 This also belongs to A
B 
 This should be with B
 same with this
...
...

私はそれを最終的にそのような文字列にしたいと思います:

A This is some Text belonging to A This also belongs to A
B This should be with B same with this

私の試みは次のようなものでした:

answer.scan(/^([A-Z].+?(?=^[A-Z]))/m).map { |d| d.delete("\n") }.join("\n")

問題は、これが最後のセットと一致しないことです(文字列は最後のセットで終わると想定できます)。:)

edit1:コピーエラーを修正し、Rubularで新しい正規表現を試しましたが、どの種類の機能がありますが、まだいくつかの不要な一致がありますか?

4

2 に答える 2

4
text = <<EOS
A 
 This is some Text belonging to A
 This also belongs to A
B 
 This should be with B
 same with this
 variable line
EOS

text.gsub(/\s?\n\s/, ' ')

# Outputs: 
# A This is some Text belonging to A This also belongs to A
# B This should be with B same with this variable line
于 2012-12-05T10:25:19.587 に答える
1
answer = answer
.scan(/^([A-Z].+?(?=^[A-Z]))|(^[A-Z].+?\Z)/m)
.map {|item| item.reject { |i| i.nil? } }
.map { |d| d[0].delete("\n") }
.join("\n")

今のところうまくいくようです...おそらく最善の方法ではありませんが

于 2012-12-05T10:50:17.770 に答える