2013-07-12 57 views
1

替換我想做一個查找和替換(CTRLSHIFT˚F)通過我的程序和替換所有函數聲明,如下所示:使用正則表達式與查找和Visual Studio的

void foo(int i) { 

有了這個(預定義宏):

TestStart(foo) 

我的正則表達式來捕獲文本下來:

void (?<name>\w+)\(int i\) \{ 

但我需要一些幫助替換。如何從上述正則表達式中引用name?我覺得這是我最親密的嘗試:

TestStart\(<name>\) 

我已經試過失去<>(){}組合並沒有似乎工作。幫幫我?

+1

如果你省略'? '部分,您可以使用反向引用:'TestStart \(\ 1 \)''\ 1'部分應該替換爲名稱。 –

+0

@DrewMcGowen對不起,這是什麼? – Nealon

+0

不好意思,快回復吧:P –

回答

1

我結束了使用此:

TestStart($1) 

Visual Studio中不使用\1作爲參照先前捕獲的文字被其他人的建議。

+0

*嘆*微軟及其無限的智慧:P –

+0

@DrewMcGowen哈哈,謝謝你的幫助,但它指出了我的正確方向 – Nealon

0

在Visual Studio中,你可以使用反向引用命名捕獲的

$ { + CAPTURE_GROUP_NAME + }

形式見Substitutions in Regular Expressions

${name}     包括通過由(?<name>)替換字符串指定的命名組匹配的最後一個子。有關更多信息,請參閱Substituting a Named Group

所以,你的情況,你搜索

void (?<name>\w+)\(int i\) \{ 

而且隨着TestStart(${name})取代。

相關問題