2013-01-09 68 views
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"] 

我該如何實現這一目標?

回答

2

使用/m修改,允許點匹配換行符:

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

另外,我建議你使用\z代替$因爲$一行的末尾匹配; \z是強制Ruby匹配字符串結尾的唯一方法。在這個例子中,這並不重要,但這是一個很好的習慣。 Ruby在這兩點上與所有其他正則表達式不同。

+0

謝謝@Tim!這正是我正在尋找的東西。 – Sayuj

相關問題