怎么返回Ruby正则表达式的第一次匹配?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

我正在寻找一种方法来在Ruby中对字符串执行正则表达式匹配。。

我正在处理的字符串很长,看起来标准方法(match方法)会处理整个事情,收集每个匹配,并返回包含所有匹配的MatchData对象。

match = string.match(/regex/)[0].to_s
提问于
用户回答回答于

可以试试variableName[/regular expression/]。这是来自irb的示例输出:

irb(main):003:0> names = "erik kalle johan anders erik kalle johan anders"
=> "erik kalle johan anders erik kalle johan anders"
irb(main):004:0> names[/kalle/]
=> "kalle"
用户回答回答于

可以使用[]:(这就像match

"foo+account2@gmail.com"[/\+([^@]+)/, 1] # matches what is inside ()
# => "account2"
"foo+account2@gmail.com"[/\+([^@]+)/, 0] # matches whole regexp
# => "+account2"

扫码关注云+社区