2015-03-02 30 views
0

我需要通過一個文件並使用Gi​​thub約定#xxx(其中xxx是問題編號)替換提到問題的所有實例,並使用格式爲Markdown的問題鏈接。使用正則表達式替換帶有文本的數字

因此,舉例來說,這樣的:

#143, #99 

應轉換成這樣:

[#143](https://github.com/repo/issues/143), [#99](https://github.com/repo/issues/99) 

我就得到了以能夠選擇使用三位數字的所有問題:

#..[0-9] 

但留下了兩個或一個數字的問題(即:#5#23

有沒有辦法推廣上述命令來選擇所有問題,不管他們有多少位數?

完成此操作後,如何替換爲每個問題添加鏈接?

回答

1

您需要的正則表達式#(\d+)[#$1](https://github.com/repo/issues/$1)

+0

第一個正則表達式不適用於我Amit,它沒有選擇任何東西。 – Gabriel 2015-03-02 14:47:35

+0

第二個也不行,數字被'[#](https://github.com/repo/issues/)'取代。我正在使用Sublime BTW,不確定它是否相關。 – Gabriel 2015-03-02 14:48:59

+1

@Gabriel現在就試試。你不需要我使用過的Sublime – 2015-03-02 14:50:14

2

你應該使用這個表達式:

#[0-9]{1,3} 

1個3位之間的匹配問題#爲[0-9]{1,3}將匹配一個數字,長度爲1〜3。

您還可以使用使用字邊界

#[0-9]+\b 
+2

更換好像你打敗了我:) – blackmind 2015-03-02 14:45:23

+0

這對於選擇問題非常有用,謝謝anubhava!任何想法如何用正確的降價鏈接取代它們? – Gabriel 2015-03-02 14:49:51

+0

你應該匹配'#([0-9] +)\ b'並將其替換爲:[[$ 0](https://github.com/repo/issues/$1)'其中'$ 0'和'$ 1'是對匹配數據的反向引用。 – anubhava 2015-03-02 14:58:15

1

試試這個正則表達式爲你正在嘗試做

#[0-9]{1,3} 
相關問題