我在ruby代码上偶然发现了这个问题。 我知道\ d {4})\ /(\ d \ d)\ /(\ d \ d)\ /(。*)/表示什么是\ 1- \ 2- \ 3- \ 4是什么意思?
答案 0 :(得分:3)
\1-\2-\3-\4
对正则表达式本身内捕获的数据back references。
因此\1
包含在第一组中捕获的数据,\2
是在第二组中捕获的数据,\3
是在第3组中捕获的数据,依此类推
请参阅此处查看Ruby implementation
答案 1 :(得分:3)
这些都是反向引用。 \ 1表示第一组括号()
的结果,即(\d\d)
,\ 2表示第二组,依此类推。
答案 2 :(得分:1)
将1234/12/12/XX
转换为1234-12-12-XX
答案 3 :(得分:0)
我认为\ 1,\ 2等只是引用匹配的组
即。 \ 1 ==(\ d {4})
答案 4 :(得分:0)
他们引用匹配的组(替换反向引用)
答案 5 :(得分:-1)
您可以通过将正则表达式放置在括号内来捕获正则表达式的部分模式,然后在替换部分上根据它们出现的顺序使用\ 1,\ 2,\ 3,...引用它们。
在你的例子中,1将是前4位,\ 2将是第二位,\ 3将是以下两位,\ 4将是其余两位。
所以“20100410milk”将被“2010-04-10-milk”取代,因为\ 1将是2010年,\ 2 04,\ 3 10和\ 4牛奶。