Visual Studio Code Search and Replace with Regular Expressions


116

Eu quero usar o "Pesquisar e substituir" no código do Visual Studio para mudar a cada instância de <h1>content</h1>que #### contentdentro de um documento usando uma expressão regular.

Como posso fazer isso?


2
Tem que ser um regex localizar e substituir? Você poderia apenas substituir <h4>por #### e depois substituir </h4>por ''?
Brett East

Respostas:


190

Então, seu objetivo é pesquisar e substituir?
De acordo com o pdf oficial de atalhos de teclado do Visual Studio, você pode pressionar Ctrl + Hno Windows e no Linux ou ⌥⌘Fno Mac para ativar a ferramenta de pesquisa e substituição:

Guia de pesquisa e substituição do código do Visual Studio Se você pretende desativar o código, basta colocá-lo <h1>em pesquisa e substituí-lo por#### .

Mas se você quiser usar esta regex, você pode habilitá-la no ícone: . *e usar a regex: <h1>(.+?)<\/h1>e substituir por:#### $1 .

E como @tpartee sugeriu, aqui estão mais algumas informações sobre o mecanismo do Visual Studio se você quiser saber mais:


3
O Visual Studio manipulará a regex como qualquer outro aplicativo, a única diferença são os chamados sabores de regex, que é o 'compilador' da regex e como ele tratará a expressão. Normalmente, ele é ignorado em respostas como essas porque a maioria delas é muito semelhante, mas para aqueles que ainda querem dar uma olhada, eu adicionei à resposta
Mateus

2
A pergunta é sobre o Visual Studio Code e esta resposta é sobre o Visual Studio.
Dustin Wyatt

1
ou altere seus atalhos de teclado. Exemplo: Por IDEA Keybindings ( marketplace.visualstudio.com/… ), você pode usar: Ctrl + Shift + R para Substituir no Caminho ou para Encontrar no Caminho: Ctrl + Shift + F
SL5net

6

Para iniciantes, eu queria acrescentar algo à resposta aceita, porque algumas sutilezas não eram claras para mim:

Para localizar e modificar o texto (não substituir completamente),

  1. Na etapa "Encontrar", você pode usar regex com "grupos de captura", por exemplo, sua pesquisa pode ser la la la (group1) blah blah (group2)usando parênteses.

  2. E então na etapa "Substituir", você pode se referir aos grupos de captura via $1, $2etc.

Assim, por exemplo, neste caso, poderíamos encontrar o texto relevante apenas com <h1>.+?<\/h1>(sem parênteses), mas colocar entre parênteses <h1>(.+?)<\/h1>permite-nos referir-nos à subcasa entre eles como $1na etapa de substituição . Legal!

Notas

  • Para ativar o Regex no Find Widget, clique no .*ícone ou pressioneCmd/Ctrl Alt R

  • $0 refere-se a toda a partida

  • Finalmente, a pergunta original afirma que a substituição deve acontecer "dentro de um documento", para que você possa usar o "Widget de busca" ( Cmdou Ctrl+ F), que é local para o documento aberto, em vez de "Pesquisar", que abre uma IU maior e examina todos os arquivos do projeto.


0

Certifique-se de que Match Case esteja selecionado com Use Regular Expression para que corresponda. [AZ] * Se a caixa de correspondência não for selecionada, corresponde a todas as letras.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.