Hi! I really want to know how to denote line breaks in multiline regexp.
The problem is that \s is not only a line break.
I.e. how to parse this in a general way?
s=<<HERE
a loooong-loooong text with
MANY spaces and single line breaks
followed by three empty lines
this line must be detached from the previous
HERE
Thanks in advance!
Hi,
I see that Rob posted a response to this but his email came thru blank
for me so I will answer again. Hopefully I’m not repeating his info.
“\n” is a line break and only a line break. So to detach those lines
you would do:
s = s.split(/\n{3}/)
s[0] #=> a looongtest…many spaces…followed by 3 empty lines, etc.
s[1] #=> this line must be detached…
Dan
Oops! If I have the “signed” option in Mail.app, the response doesn’t
make it sometimes.
-Rob
On Apr 18, 2008, at 9:25 AM, Andrey C. wrote:
followed by three empty lines
this line must be detached from the previous
HERE
Thanks in advance!
Just use \n to match the literal newline. The m option just changes
when \n is matched by a wildcard.
irb> s.match(/(.\n\n\n)/m).captures
=> [“a loooong-loooong text with\nMANY spaces and single line
breaks\nfollowed by three empty lines\n\n\n”]
irb> s =~ /(.\n\n\n)/m
=> 0
irb> $1
=> “a loooong-loooong text with\nMANY spaces and single line
breaks\nfollowed by three empty lines\n\n\n”
Without the m
irb> s =~ /(.*\n\n\n)/
=> 69
irb> $1
=> “followed by three empty lines\n\n\n”
You can still have \n, but the .* doesn’t match all the previous
characters.
-Rob
Rob B. http://agileconsultingllc.com
[email protected]
I reposted by earlier response, but Dan’s suggestion might be closer
to what you want.
-Rob
Daniel F. wrote:
s = s.split(/\n{3}/)
Yes, indeed this works! Thank you guys!
The problem was with my JRuby. It understands “\n” neither in a search
string nor in a regexp. It is probably a bug. I will give you an
example if it is interesting, when I am at work.
Andrey C. wrote:
Daniel F. wrote:
s = s.split(/\n{3}/)
The problem was with my JRuby. It understands “\n” neither in a search
string nor in a regexp. It is probably a bug. I will give you an
example if it is interesting, when I am at work.
Sorry, this indeed works fine. Don’t know what was the problem. Thank
you!