Ruby 获取与regexp的匹配项并将其传递到文件';我不能正常工作
我试图在文本中获取URL,并将URL写入文件 我使用以下代码: 此文本位于消息变量中:Ruby 获取与regexp的匹配项并将其传递到文件';我不能正常工作,ruby,Ruby,我试图在文本中获取URL,并将URL写入文件 我使用以下代码: 此文本位于消息变量中: bestätigt werden每封电子邮件的发件人。这是一个最好的链接: http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03 但在文本文件中显示以下内容: http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac
bestätigt werden每封电子邮件的发件人。这是一个最好的链接:
http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424f-917c-4dcec3529f03
但在文本文件中显示以下内容:
http://server.nitrado.net/deu/donations/verify/18074/4f8b31ac-5400-424=
你知道我做错了什么吗?我认为你读到的信息没有你认为的内容。从
$stdin
中读取并使用字符串文字,我看到了匹配的预期结果:
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"
Regexp meta char
匹配除换行符[^\n]
以外的任何字符,这解释了捕获在使用此输入时停止的原因。输入是一封通过maildrop直接传递给脚本的电子邮件。我想这就是问题所在。。。如果没有其他解决方案,我将尝试使用mail gem管理电子邮件谢谢您的帮助!
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"
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="