Вы всегда можете написать макрос 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 и откройте «Macro Explorer»; перейдите к макросу и дважды щелкните по нему для запуска (извините, если вы все это знаете - просто старайтесь быть тщательным!). Позже вы также можете назначить сочетание клавиш для этого макроса.
Очевидно, что если вы хотите использовать все функциональные возможности, которые предоставляет существующий диалог поиска / замены, вам придется проделать больше работы; и может быть отложено этим.
Самым очевидным улучшением этого кода (кроме правильной обработки ошибок!) Было бы создание формы на лету со всеми необходимыми полями ввода вместо отображения последовательных полей ввода!
Просто идея;)