1
str = "This\n is a sample text for test"
str.scan(/\S.{0,15}\S(?=\s|$)|\S+/)
# => ["This", "is a sample text", "for test"]

\nここでは、改行( )が存在するときに分割されます。私は実際に次のように出力したいです、

 ["This\n is a", "sample text for", "test"]

どうすればそれを達成できますか?

4

1 に答える 1

2

/mドットを改行に一致させる修飾子を使用します。

str.scan(/\S.{0,15}\S(?=\s|\z)|\S+/m)

また、行の終わりに一致するため、\z代わりに使用することをお勧めします。Rubyを文字列の終わりに一致させる唯一の方法です。この例では問題ではありませんが、参加するのは良い習慣です。Rubyは、これら2つの点で他のすべての正規表現フレーバーとは異なります。$$\z

于 2013-01-09T11:58:43.087 に答える