这应该是一个简单的问题,但我找不到任何关于它的信息。
给定 Ruby 中的正则表达式,对于每个匹配项,我都需要检索匹配的模式$1
, $2
,但我还需要匹配位置。
我知道=~
操作员给了我第一个匹配的位置,同时string.scan(/regex/)
给了我所有匹配的模式。如果可能的话,我需要在同一步骤中获得两个结果。
string.scan(regex) do
$1 # Pattern at first position
$2 # Pattern at second position
$~.offset(1) # Starting and ending position of $1
$~.offset(2) # Starting and ending position of $2
end
您可以像这样在扫描中访问匹配数据:
"abcdefghij".scan(/\w/) {p $~}