我很想在Ruby中使用正则表达式从一个文本块中提取多个匹配项。
这是一个例子;
https://rubular.com/r/l2Mi2xmahACmsV
正则表达式在示例中捕获了两个匹配项。
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中提取多个匹配项?