【发布时间】:2015-03-23 21:14:54
【问题描述】:
我正在尝试将我的正则表达式匹配的命名组分配给局部变量。例如,我正在尝试为日期输入捕获字符串,并将命名组 month 和 day 作为局部变量:
input = "2015-01-24"
expr = /\d{4}-(?<month>\d{2})-(?<day>\d{2})/
input =~ expr #=> 0
但是,month 或 day 在匹配后是未定义的变量。如何将month 和day 作为局部变量访问?
根据Ruby doc,键入组变量名称将返回捕获的值(本例中为“美元”)
/\$(?<dollars>\d+)\.(?<cents>\d+)/ =~ "$3.67" #=> 0
dollars #=> "3"
我也会很感激任何推荐的资源。
【问题讨论】:
标签: ruby regex capturing-group