在 Perl 中,我可以执行以下操作并获得预期的输出 admin1secretpw
。
我如何在 Ruby 中做同样的事情? IE。在变量中保存多个缓冲区。
#!/usr/bin/perl
my $a = 'admin1:secretpw@example.com';
(my $u = $1, my $p = $2) if $a =~ /(.*?):(.*?)@/;
print $u;
print $p;
最佳答案
您可以使用命名捕获组。
a = 'admin1:secretpw@example.com'
/(?<username>.*?):(?<password>.*?)@/ =~ a
puts username
puts password
这会将两个组都捕获为局部变量。
=~
的参数顺序很重要。使用 ... =~ a
将命名组分配给局部变量,使用 a =~ ...
则不会。
关于ruby - 在 Ruby 的变量中保存多个正则表达式缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41308657/