2009-02-26 56 views
3

我正在尋找一種體面的工具,它可以在多個文件中進行搜索和替換,使用正則表達式語法在C#中使用。通常我會在Visual Studio中這樣做,除了它有最奇怪的正則表達式語法(並且這意味着比手動替換文件中的文本更快)。在文件中查找和替換 - .NET友好的正則表達式語法

到目前爲止,我試過Windows的grep,但它不喜歡下面的正則表達式。有問題的正則表達式是

<see cref="(?<class>.+)">(.+)</see> 

要與

<see cref="${class}"/> 

或者這個轉換到Visual Studio的語法就可以了更換!

Jeff在他的博客上有一個whole post

回答

3

在Visual Studio中,發現:

\<see cref="{:i}"\>.*\</see\> 

,並替換爲:

<see cref="\1"/> 

{}是VS分組操作。它沒有命名。替換中\ n用於查找表達式中第n組的值。

,如果你需要考慮新的線路或其它空格,您可以調整:i.*部分。

1

記事本+ +是相當受歡迎的,重量輕,具有此功能,你有沒有試過?:

http://notepad-plus.sourceforge.net/uk/site.htm

編輯: 這樣看來我的鏈接已經過時,這種用法是隻相當近:

http://www.opensourcereleasefeed.com/release/show/notepad-v5-2-released-replace-in-files-feature-added

+0

這是否適用於多個文件? – AnthonyWJones 2009-02-26 13:35:01

+0

在我的編輯中,它會顯示爲是。您的評論觸發我進行雙重檢查。 – 2009-02-26 13:42:25

+0

@AnthonyWJones:自從舊版本以來我一直沒有使用它,但是它非常有用 – 2009-02-26 13:43:14

3

在Visual Studio中,你可以用下面的註冊防爆做到這一點:

\<see cref="{.+}"\>.+\</see\> 

替換:

<see cref="\1" /> 

記住要選擇在查找使用/正則表達式和替換對話框。

我一直認爲它很糟糕,Visual Studio不支持與.Net框架相同的正則表達式語法。

3

有幾個選擇:

  • 如果這是你經常做的事情,我會去PowerGrep,因爲它可能是這種情況的最完整的和用戶友好的工具。

  • 它的兄弟姐妹RegexBuddy也具有Grep功能,雖然不夠全面。

  • 如果你不害怕Perl,你也可以使用它的命令行作爲search and replace tool

  • 否則,仍然存在着那些可敬的sedworks on Windows