初投稿になります。
はじめに
Rubyで文章を一文ずつに分割して配列にしたい場合、
String#split
を使って句点'。'
で区切ってやればいいですが、区切り文字として使った'。'
が消えてしまいます。
後ろにまた付け直すこともできますが、面倒です。
text = 'おはよう。こんにちは。こんばんは。'
text.split('。')
# => ["おはよう", "こんにちは", "こんばんは"]
text.split('。').map{|s| s + '。'}
# => ["おはよう。", "こんにちは。", "こんばんは。"]
正規表現で後読みを使う
これには、String#split
に正規表現で「肯定的後読み」(?<= )
を使ってやれば、区切り文字"。"
を消さずに分割できます。
text = 'おはよう。こんにちは。こんばんは。'
text.split(/(?<=。)/)
# => ["おはよう。", "こんにちは。", "こんばんは。"]
scanメソッドでもできる
ちなみにString#scan
を使ってもできます。
text = 'おはよう。こんにちは。こんばんは。'
text.scan(/.*?。/)
# => ["おはよう。", "こんにちは。", "こんばんは。"]
こちらのほうが簡単ですね。