2013-05-30 46 views
0

是否有用於計算匹配組的正則表達式轉義代碼?Sublime Text 2中替換字符串的正則表達式計數

如更換:

foo 
foo 
foo 

隨着:

foo x 3 

搜索:((富)\ n)的+

替換: $ 2×?? \ n

+0

你是什麼意思'$ 2 x ?? \ n'? –

+1

@ shiplu.mokadd.im OP正在尋找用'{token} xn'替代__n__某個標記的實例。 – Mathletics

+0

Right,尋找相當於: 'string.Format(「{0} x {1} \ n」, match.Groups [2] .Value,match.Groups [1] .Captures.Count)' –

回答

0

我不認爲你可以單獨使用正則表達式。下面是在Javascript中的例子:

var myText = "foo\nfoo\nfoo"; 
var line = myText.match(/(.+)(?=\r?\n\1$)/mg)[0]; 
var re = new RegExp(line + "\r?\n(?=" + line + "$)","mg"); 
myText = line + " x " + (myText.match(re).length + 1); 

結果:

foo x 3 

如果你想這樣做,在多個值,比如 「富\ nfoo \ nfoo \ NBAR \ NBAR」 那麼我建議你分裂首先將字符串轉換爲數組。

+0

是的,這是我如何用C#做的:http://ideone.com/57JvkF但是,我試圖只是在我的文本編輯器中清理日誌文件(Sublime Text 2)。謝謝無論如何,也許這將幫助別人,如果他們正在使用Java –

+0

好的,所以你現在有一個解決方案? – Pillowcase

+0

可能沒有解決方案...我知道正則表達式跟蹤捕獲,並且有基於計數的匹配語法,使用{COUNT},例如((foo)\ n){3}來匹配3個實例該組。所以我很好奇,如果有一種方法,我不知道如何在替換表達式中獲得該數量,而無需額外的邏輯或lambda表達式。 –