我刚才写了这样的东西,并且知道必须有一个更漂亮的方法来做到这一点。
if REGEX.match(foostring)
match = REGEX.match(foostring)
#do things with match data
end
有人知道吗?
答案 0 :(得分:3)
更好的解决方案是使用正则表达式匹配块
string.match(/regex/) do |match|
...
end
这是红宝石的方式!
请注意,当您运行$1
时,您也可以通过全局变量string.match(/regex/)
访问匹配项。
答案 1 :(得分:2)
你可以做到
/<reg_exp>/.match('foostring') do |match|
#do things with match data
end
返回描述匹配的
MatchData
对象,如果没有匹配则返回nil
。如果给出了一个块,如果匹配成功,则使用MatchData调用该块