ruby - get a match with regexp and pass it to a file doesn't work properly -


i'm trying url in text , write url file.

i use code:

message = $stdin.read  test = message.match('http:\/\/(.*?)$')  file.open('test.txt', 'w') |f2|    f2.puts "#{test}" end   

this text in message variable:

die spende muss vom empfänger sowie sender per e-mail bestätigt werden. um die spende zu bestätigen klicke auf folgenden link: http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03 

but in textfile appears this:

http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424= 

any ideas i'm doing wrong?

i don't think message read has contents think has. taking out read $stdin , using string literal instead, see expected results match:

message = "die spende muss vom empfänger sowie sender per e-mail bestätigt werden. um die spende zu bestätigen klicke auf folgenden link: http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03" => "die spende muss vom empfänger sowie sender per e-mail bestätigt werden. um die spende zu bestätigen klicke auf folgenden link:\nhttp://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03"  test = message.match('http:\/\/(.*?)$') => #<matchdata  "http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03"  1:"server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03">  "#{test}" # or test.to_s => "http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03" 

the final = on matched result indicates me input may in format breaks long lines, ending them =. eg:

message = <<eom die spende muss vom empfänger sowie sender per e-mail bestätigt werden= . um die spende zu bestätigen klicke auf folgenden link: http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424= f-917c-4dcec3529f03 eom  test = message.match('http:\/\/(.*?)$').to_s => "http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424=" 

regexp meta-char . matches character except newline [^\n] explains why capture stops input.


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -