我已经偶然发现了这个Ruby代码。我知道\ d {4})\ /(\ d \ d)\ /(\ d \ d)\ /(。*)/意思,但是\ 1- \ 2- \ 3- \ 4是什么意思?什么是gsub(/( d {4}) /( d d) /( d d) /(。*)/,' 1- 2- 3- ) 意思?
回答
的\1-\2-\3-\4
是back references到正则表达式内所捕获的数据本身。
因此,\1
包含在第一组中捕获的数据,\2
是在第二组中捕获的数据,\3
是在第三组中捕获的数据,依此类推。
看到这里的Ruby implementation
我认为\ 1,\ 2等只是引荐到匹配组
即\ 1 ==(\ d {4})
这些都是反向引用。 \ 1表示第一组括号()
的结果,即(\d\d)
,\ 2表示第二组等。
他们提到回匹配组(substituion反向引用)
变换1234/12/12/XX
到1234-12-12-XX
嗯,这是什么? – 2011-04-01 15:51:55
什么'gsub(/(\ d {4})\ /(\ d \ d)\ /(\ d \ d)\ /(。*)/,'\ 1- \ 2- \ 3- \ )'实际上是。 '1234/12/12/XX'只是一个样本输入 – knoopx 2011-04-01 15:54:32
啊,好的。你原来的回答并没有太多意义。 – 2011-04-01 15:56:47
您可以捕获正则表达式的模式的部分放置它们在括号内,然后在替换部分按照它们出现的顺序用\ 1,\ 2,\ 3,...引用它们。
在你的例子中,1将是前4位数字,2将是后2位数字,3将是以下2位数字,其余4位数字。
所以“20100410milk”将被“2010-04-10牛奶”取代,因为\ 1将会是2010,\ 04 \,\ 3 10和\ 4牛奶。
您错过了输入中的文字斜杠。 – Phrogz 2011-04-01 17:35:38
- 1. ** D是什么意思在string.format(** D)?
- 2. 这个正则表达式是什么意思:\\ d {3} - \\ d {4}。*
- 3. 正则表达式(\ d {3})(?= \ d)是什么意思?
- 4. Perl:m /^.* \。(\ d +)$ /是什么意思?
- 5. pdfgrep'\ d {3} - \ d {2} - \ d {4}'vs'[0-9] {3} [ - ]?[0-9] {2} [ - ]?[0- 9] {4}”
- 6. 1-d指针2-d阵列
- 7. 正则表达式[。\ d \ D] *是什么意思?
- 8. 导入示例^ \ d {3} - \ d {4} $ “”
- 9. M,D的意思是十进制(M,D)究竟是什么意思?
- 10. NSString stringWithFormat“%”“d”4而不是“%d”4?
- 11. 使用正则表达式识别窗体\ d \ d \ d \ d \ d \ d的日期
- 12. “npm -d install”中的“-d”是什么?
- 13. “D:,H :, V:”是什么意思在fbset?
- 14. 什么是4'd#符号?
- 15. WPF中的mc:Ignorable =“d”是什么意思?
- 16. REGEX是什么意思? [a-zA-Z] | \ d
- 17. JSON中的.d是什么意思?
- 18. php标志-d是什么意思?
- 19. 模式\ d {10}是什么意思?
- 20. javac -d是什么意思。 classname.java
- 21. VBScript - RegEx - 修改ObjMatch - Pattern =“(\ d {2})(\ d {2})(\ d {2})”
- 22. 为什么\ d \ +或\ d +在这里不等于\ d *?
- 23. 二进制炸弹(阶段4)%d%d
- 24. Perl正则表达式(\ d * \。\ d {2})
- 25. 在java -D中D代表什么?
- 26. 什么是2 + 1-D时空视频?
- 27. 什么是stringWithFormat:@“%1 $ @%2 $ d”呢?
- 28. Convert.ToDateTime(D)与(DateTime)相比D
- 29. 区别:d [count]和d [count]
- 30. {0 [Jack]:d}在Python中.format(),'d'的意义是什么?
有人是一个大的反斜杠风扇。 '%r [(\ d {4})/(\ d \ d)/(\ d \ d)/(。*)]'而不是'/(\ d {4})\ /(\ d \ d)\ /(\ d \ d)\ /(。*)/'? – 2011-04-01 15:55:12
@Jörg:作者可能不知道'%r'正则表达式文字。 – 2011-04-01 15:57:38
我是ruby的新手,所以我不知道你们在谈论什么,但它似乎%r [(\ d {4})/(\ d \ d)/(\ d \ d)/(。*)]对我来说也更清洁。 – studiomohawk 2011-04-04 10:36:13