ruby - 在 Ruby 的变量中保存多个正则表达式缓冲区?

标签 ruby regex

在 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/

相关文章:

ruby-on-rails - 关于基于浏览器的在线产品目录的开发框架的建议?

ruby - 尝试在 Ruby 中使用经过身份验证的 SMTP

javascript - 重复相同字符时正则表达式失败

PHP - 为什么我的 preg_match 不起作用?

python - 网站抓取价格为零的问题

php - 将 preg_match() 与 REGEX 表达式一起使用时的未知修饰符 '('

ruby - 使用 Ruby FTPS 进行加密传输

ruby - 没有 rails 的 rspec - 未初始化的常量

ruby-on-rails - rails 不再生成脚本/服务器

c++ - 正则表达式很奇怪