2010-01-11 75 views

回答

2

你總是可以寫一個VB.Net宏來做到這一點;取決於你想要的靈活性。

對於當前文檔上的查找和替換,您可以使用這個簡單的腳本--Alt + F11來啓動宏編輯器,然後離開你。粘貼到一個新的模塊:

Sub RegexReplace() 
    Dim regex As String = InputBox("Enter regex for text to find") 
    Dim replace As String = InputBox("Enter replacement pattern") 

    Dim selection As EnvDTE.TextSelection = DTE.ActiveDocument.Selection 
    Dim editPoint As EnvDTE.EditPoint 

    selection.StartOfDocument() 
    selection.EndOfDocument(True) 

    DTE.UndoContext.Open("Custom regex replace") 
    Try 
     Dim content As String = selection.Text 
     Dim result = System.Text.RegularExpressions.Regex.Replace(content, regex, replace) 
     selection.Delete() 
     selection.Collapse() 
     Dim ed As EditPoint = selection.TopPoint.CreateEditPoint() 
     ed.Insert(result) 
    Catch ex As Exception 

    Finally 
     DTE.UndoContext.Close() 
     DTE.StatusBar.Text = "Regex Find/Replace complete" 
    End Try 

End Sub 

保存模塊,返回到VS並打開'宏瀏覽器';導航到宏並雙擊它運行(對不起,如果你知道這一切 - 只是想徹底!)。稍後您可以爲此宏分配鍵盤快捷鍵。

顯然,如果你想要現有的查找/替換對話框提供的所有功能,那麼你必須做更多的工作;並可能被推遲。

這個代碼最明顯的增強(除了正確的錯誤處理!)將是隨着你需要的所有輸入框,而不是顯示連續的輸入框,隨時建立一個表單!

只是一個想法;)

3

請看看這裏:The Visual Studio IDE and Regular Expressions

有一個免費add-in available它提供了真正的正則表達式在Visual Studio中搜索。

+0

感謝魯本斯,我知道你提供的鏈接,我提供的語法鏈接顯示的語法不可用,這就是爲什麼我要尋找加載項。 不幸的是,你提供的加載項是用於Visual Studio 2003的。 – Robs 2010-01-11 11:46:50

+0

似乎在2005年工作;嘗試只安裝在2008 – 2010-01-11 14:10:04

+0

聖潔7年前蝙蝠俠...看到shellshock的回答 – felickz 2012-01-06 21:32:44

相關問題