Ruby(2.6.0)正则表达式多个匹配项

时间:2019-03-14 14:54:44

标签: regex ruby text

我很想在Ruby中使用正则表达式从一个文本块中提取多个匹配项。

这是一个例子;

https://rubular.com/r/l2Mi2xmahACmsV enter image description here

正则表达式在示例中捕获了两个匹配项。

  • 主机:test01.com
  • 服务:000001

正则表达式似乎还可以,所以现在我将使用Ruby。

--
[5] pry(main)> t.match(/Service\|(?<service>\d*)\|/)[:service]
=> "000001"

[6] pry(main)> t.match(/Hostname\|(?<host>[^|]*|)/)[:host]
=> "test01.com"
--

它正在运行,完全符合一次比赛的期望,但是多次比赛呢?

[7] pry(main)> t.match(/Hostname\|(?<host>[^|]*)\||Service\|(?<service>\d*)\|/)
=> #<MatchData "Service|000001|" host:nil service:"000001">

似乎不起作用。 (host:nil

有什么想法可以在Ruby中提取多个匹配项?

0 个答案:

没有答案