&符号在下面的代码中做了什么?
s.reverse.gsub( /\d{3}(?=\d)/, '\&,' ).reverse
在尝试查找这些内容之后,人们会认为这是一个特殊的变量,意思是post_match或pre_match,但是文档没有说&符号 - 只有美元符号后跟或者前面有刻度线。
答案 0 :(得分:1)
\&
定义了正则表达式匹配的整个字符串。看到这个简化的例子:
s = "p1:1 1:1";
print s.gsub( /[a-z]/, '[\&],' ) ## only p is matched
输出:[p],1:1 1:1
同样,\1
定义了与正则表达式匹配的第一个组。 (类似于\ 2,\ 3 ......等等)。一个例子:
s = "p1:1 1:1";
print s.gsub( /(\d:\d)/, '[\1]' )
输出:p[1:1] [1:1]