Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 获取与regexp的匹配项并将其传递到文件';我不能正常工作_Ruby - Fatal编程技术网

Ruby 获取与regexp的匹配项并将其传递到文件';我不能正常工作

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

我试图在文本中获取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-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="