Respostas:
Verifique se "Usar: expressões regulares" está selecionado na caixa de diálogo Localizar e substituir:
Observe que, para o Visual Studio 2010, isso não funciona na extensão "Localização rápida" do Visual Studio Productivity Power Tools (a partir da atualização de julho de 2011); em vez disso, você precisará usar a caixa de diálogo Localizar e substituir completa (use Ctrl + Shift + H ou Editar -> Localizar e substituir -> Substituir em arquivos) e altere o escopo para "Documento atual".
\)
quando as expressões regulares estão em ...
?
caractere precisa ser escapado no Regex porque significa que o elemento anterior é opcional. Portanto, o texto "Localizar o que" é correto ~~\?
, com o ponto de interrogação escapado por uma barra invertida. A resposta que você deu funciona no texto de amostra porque ele encontrará avidamente o segundo til e o consumirá; no entanto, se um único til também existir no texto em qualquer lugar, ele também será substituído incorretamente por uma nova linha.
Se você definir o sinalizador "Usar expressões regulares", \ n será traduzido. Mas lembre-se de que você precisaria modificar o termo de pesquisa para ser favorável à regexp. No seu caso, ele deve ser escapado assim "\ ~ \ ~ \?" (sem aspas).
Se você deseja evitar o incômodo de escapar dos caracteres especiais em sua cadeia de pesquisa e substituição ao usar expressões regulares, execute as seguintes etapas:
Observe que, mesmo que você deseje especificar correspondências manualmente para a primeira pesquisa e substituição, você pode usar com segurança "substituir tudo" nas três últimas etapas.
Por exemplo, se você deseja substituir isso:
public IFoo SomeField { get { return this.SomeField; } }
com isso:
public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }
Você faria as seguintes substituições:
public IFoo SomeField { get { return this.SomeField; } }
→ XOXOXOXO
(regex desativado ).XOXOXOXO
→ XOXOXOXO\nHUHUHUHU
(regex em ).XOXOXOXO
→ public IFoo Foo { get { return this.MyFoo; } }
(regex desativado ).HUHUHUHU
→ public IFoo Bar { get { return this.MyBar; } }
(regex desativado ).Você pode usar a pesquisa multilinha e substituir na macro do Visual Studio, que fornece uma interface gráfica agradável para a tarefa.