ruby 正则表达式中的全局变量
在使用sub,gsub 时,正则表达式不中不能使用全局变量
str = "a123b456c789"
str.sub(/(a\d+)(b\d+)(c\d+)/,"a=#{$1}, b=#{$2}, c=#{$3}")
=>
"a=, b=, c="
可以使用
str = "a123b456c789"
str.sub(/(a\d+)(b\d+)(c\d+)/,'a=\1, b=\2, c=\3')
=>
"a=123, b=456, c=789"
或
str = "a123b456c789"
str.sub(/(a\d+)(b\d+)(c\d+)/) {"a=#{$1}, b=#{$2}, c=#{$3}"}
=>
"a=123, b=456, c=789"