Tentando pesquisar e substituir no Código do Visual Studio, acho que seu sabor Regex é diferente do Visual Studio completo. Especificamente, tento declarar um grupo nomeado com o string (?<p>[\w]+)
qual funciona no Visual Studio, mas não no Visual Studio Code. Ele vai reclamar com o erro Invalid group
.
Além de resolver esse problema específico, estou procurando informações sobre o sabor dos Regexes no Visual Studio Code e onde encontrar documentação sobre ele, para que eu possa me ajudar com quaisquer outras perguntas que possam surgir.
O Visual Studio completo usa expressões regulares do .NET, conforme documentado aqui . Este link é mencionado como a documentação para o VS Code em outro lugar no Stackoverflow, mas não é.
[^]
padrão como correspondendo a qualquer símbolo. Portanto, é claro que é o mecanismo JS regex.Respostas:
Rust Regex na barra lateral Localizar / substituir em arquivos
Rob Lourens, da MSFT, escreveu que a pesquisa de arquivos usa o Rex regex. A documentação do idioma Rust descreve a sintaxe.
Regex JavaScript no widget Localizar / substituir no arquivo
Alexandru Dima, da MSFT, escreveu que o widget find usa regex JavaScript. Como Wicktor comentou, a documentação do ECMAScript 5 descreve a sintaxe. O mesmo acontece com o MDN JavaScript Regular Expression Guide .
Teste a diferença
A localização na barra lateral de arquivos não suporta,
(?=foobar)
enquanto a localização no widget de arquivo suporta essa sintaxe à procura da cabeça.Sobre Localizar / Substituir por Grupos
Para localizar / substituir com grupos, uso de parênteses
()
para agrupar e$1
,$2
,$3
,$n
para substituir.Aqui está um exemplo.
Antes:
Depois de:
fonte
A resposta de Shaun ainda está correta, no entanto, para adicionar uma atualização, recentemente o VS Code adicionou a opção de optar pelo uso do mecanismo PCRE2 baseado em Perl . Você pode habilitar isso através da sua configuração.
Isso permite que você execute operações regex mais avançadas, como lookaheads e backreferences . Mas, como observado abaixo, o regex ainda precisa ser um regex JavaScript válido .
E para um bônus, se você acabou aqui tentando fazer pesquisas em várias linhas, o VS Code recentemente adicionou esse recurso também !
fonte