# Splitting a string by x number of lines

**URL:** <https://www.ruby-forum.com/t/splitting-a-string-by-x-number-of-lines/115117>\
**Category:** Ruby\
**Created:** [September 20, 2007, 7:41pm UTC](https://www.ruby-forum.com/t/splitting-a-string-by-x-number-of-lines/115117 "2007-09-20T19:41:13Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [September 20, 2007, 7:41pm UTC](https://www.ruby-forum.com/t/splitting-a-string-by-x-number-of-lines/115117/1 "2007-09-20T19:41:13Z")

</div>

I am trying to figure out how to split a string into chunks of 25  
lines or less to pass to another function

Any ideas on how I could approach this?

thanks,

Luis

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [September 20, 2007, 8:04pm UTC](https://www.ruby-forum.com/t/splitting-a-string-by-x-number-of-lines/115117/2 "2007-09-20T20:04:15Z")

</div>

removed\_email\_address@domain.invalid wrote:

> I am trying to figure out how to split a string into chunks of 25  
> lines or less to pass to another function
> 
> Any ideas on how I could approach this?

string.scan(/(?:.\*?\n){1,25}/)

HTH,  
Sebastian

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [September 20, 2007, 8:31pm UTC](https://www.ruby-forum.com/t/splitting-a-string-by-x-number-of-lines/115117/3 "2007-09-20T20:31:20Z")

</div>

On Sep 20, 1:02 pm, Sebastian H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> –  
> NP: Die Apokalyptischen Reiter - Himmelskind  
> Jabber: removed\_email\_address@domain.invalid  
> ICQ: 205544826

Thanks that did the trick

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [September 20, 2007, 9:41pm UTC](https://www.ruby-forum.com/t/splitting-a-string-by-x-number-of-lines/115117/4 "2007-09-20T21:41:33Z")

</div>

I think you can get with this:

def split\_newlines(str, num\_lines)  
result,prev,index = 0,0,0  
array = []

until result.nil?  
result = str.index(“\n”, result)  
unless result.nil?  
index += 1  
array \<\< str[prev…result] if index%num\_lines==0  
result += 1  
end  
prev = result if index%num\_lines==0 and result  
end  
array \<\< str[prev…str.size] unless prev == str.size  
end

But it seems too complicated for me.  
I’m sure there is a very better approach but I’m not an experienced ruby  
programmer. I like very much to see better responses for learn  
something.

Regards,

Jovino

-----Mensaje original-----  
De: removed\_email\_address@domain.invalid [[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)]  
Enviado el: jueves, 20 de septiembre de 2007 19:40  
Para: ruby-talk ML  
Asunto: Splitting a string by x number of lines

I am trying to figure out how to split a string into chunks of 25  
lines or less to pass to another function

Any ideas on how I could approach this?

thanks,

Luis
