Ruby 如何将正则表达式中的命名组分配给局部变量
我试图将正则表达式匹配的命名组分配给局部变量。例如,我试图为日期输入捕获一个字符串,并将命名组Ruby 如何将正则表达式中的命名组分配给局部变量,ruby,regex,capturing-group,Ruby,Regex,Capturing Group,我试图将正则表达式匹配的命名组分配给局部变量。例如,我试图为日期输入捕获一个字符串,并将命名组month和day引用为局部变量: input = "2015-01-24" expr = /\d{4}-(?<month>\d{2})-(?<day>\d{2})/ input =~ expr #=> 0 我也非常感谢您推荐的资源。请仔细阅读您引用的文档: 当命名的捕获组与表达式左侧的文本regexp和=~运算符一起使用时,捕获的文本也会分配给具有相应名称的局部变量
month
和day
引用为局部变量:
input = "2015-01-24"
expr = /\d{4}-(?<month>\d{2})-(?<day>\d{2})/
input =~ expr #=> 0
我也非常感谢您推荐的资源。请仔细阅读您引用的文档: 当命名的捕获组与表达式左侧的文本regexp和=~运算符一起使用时,捕获的文本也会分配给具有相应名称的局部变量 您的代码:
input =~ expr
在两个方面没有证实这一点:(1)expr
不是文本regexp,而是分配给变量的regex,(2)您的regex位于右侧
如果您遵循文档,则可以将捕获作为局部变量引用。请仔细阅读您引用的文档: 当命名的捕获组与表达式左侧的文本regexp和=~运算符一起使用时,捕获的文本也会分配给具有相应名称的局部变量 您的代码:
input =~ expr
在两个方面没有证实这一点:(1)expr
不是文本regexp,而是分配给变量的regex,(2)您的regex位于右侧
如果您遵循文档,那么您可以将捕获引用为局部变量。OP:也就是说,/\d{4}-(?\d{2})-(?\d{2})/=~“2015-01-24”#=>0;月份#=>“01”;第24天#=>“24”
。左边是一个文本,与变量相对。谢谢,sawa,对局部变量的赋值对我来说是新的。OP:也就是说,/\d{4}-(?\d{2})-(?\d{2})/=“2015-01-24”#=>0;月份#=>“01”;第24天#=>“24”
。左边是一个文本,与变量相对。谢谢,sawa,局部变量的赋值对我来说是新的。