我已經偶然發現了這個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 {3} - \\ d {4}。*
- 2. pdfgrep'\ d {3} - \ d {2} - \ d {4}'vs'[0-9] {3} [ - ]?[0-9] {2} [ - ]?[0- 9] {4}」
- 3. 1-d指針2-d陣列
- 4. 導入示例^ \ d {3} - \ d {4} $ 「」
- 5. M,D的意思是十進制(M,D)究竟是什麼意思?
- 6. 使用正則表達式識別窗體\ d \ d \ d \ d \ d \ d的日期
- 7. 「npm -d install」中的「-d」是什麼?
- 8. 「D:,H :, V:」是什麼意思在fbset?
- 9. javac -d是什麼意思。 classname.java
- 10. REGEX是什麼意思? [a-zA-Z] | \ d
- 11. JSON中的.d是什麼意思?
- 12. 模式\ d {10}是什麼意思?
- 13. 爲什麼\ d \ +或\ d +在這裏不等於\ d *?
- 14. 二進制炸彈(階段4)%d%d
- 15. Perl正則表達式(\ d * \。\ d {2})
- 16. 什麼是stringWithFormat:@「%1 $ @%2 $ d」呢?
- 17. Convert.ToDateTime(D)與(DateTime)相比D
- 18. 區別:d [count]和d [count]
- 19. {0 [Jack]:d}在Python中.format(),'d'的意義是什麼?
- 20. 爲什麼「{1:'a',True:'b',1.0:'c',1.00:'d'}」評估爲「{1:'d'}」?
- 21. 這個正則表達式是什麼意思?/^ obj(\ d +)\ - {0,1}(| mi \ d {0,1} | critical | questionText | answerText \ - {0,1} \ d +)$/
- 22. 爲什麼printf(「%d%d%d」,++ i,i,i ++)是未定義的行爲?
- 23. pattern =「\ d {1,5},\ d {2}」的可選減號「
- 24. 轉換1-d列表到2-d列表在Python
- 25. XSD模式中的「[A-Z] {4} \ d {2} - \ d {4}」的含義
- 26. 如何2 d陣列1個d數組轉換在PHP
- 27. 生成從1-d的數據的4-d陣列重塑
- 28. [\ w \ d]中不\ d是多餘的?
- 29. 什麼呢scanf函數( 「%d%d」,&A&B)== 2指
- 30. 變換2 d散列成1個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