visual studio regulares expresiones code and regex replace visual-studio-code

regex - regulares - visual studio code save



¿Qué sabor de Regex utiliza Visual Studio Code? (2)

Intentando buscar-reemplazar en Visual Studio Code, encuentro que su sabor Regex es diferente de Visual Studio completo. Específicamente, trato de declarar un grupo con nombre con string (?<p>[/w]+) que funciona en Visual Studio pero no en Visual Studio Code. Se quejará con el error Invalid group .

Además de resolver este problema específico, estoy buscando información sobre el sabor de Regexes en Visual Studio Code y dónde encontrar documentación al respecto, para poder ayudarme con cualquier otra pregunta con la que pueda tropezar.

Full Visual Studio usa expresiones regulares .NET como se documenta here . Este enlace se menciona como la documentación para VS Code en otro lugar de Stackoverflow, pero no lo es.


Rust Regex en la barra lateral Buscar / Reemplazar en archivos

Rob Lourens de MSFT escribió que la búsqueda de archivos usa Rust regex. La documentación del lenguaje Rust describe la sintaxis.

JavaScript Regex en el widget Buscar / reemplazar en archivo

Alexandru Dima de MSFT escribió que el widget find usa JavaScript regex. Como comentó Wicktor, la documentación de ECMAScript 5 describe la sintaxis. También lo hace la Guía de expresiones regulares de JavaScript de MDN .

Prueba la diferencia

La barra lateral de buscar en archivos no admite (?=foobar) mientras que el widget de buscar en archivo admite esa sintaxis anticipada.

Con respecto a Buscar / reemplazar con grupos

Para buscar / reemplazar con grupos, use paréntesis () para agrupar y $1 , $2 , $3 , $n para reemplazar.

Aquí hay un ejemplo.

Antes de:

Después:


La respuesta de Shaun sigue siendo correcta, sin embargo, para agregar una actualización, recientemente VS Code agregó la opción de optar por usar el motor PCRE2 basado en Perl . Puede habilitar esto a través de su configuración de configuración.

Esto le permite realizar operaciones de expresiones regulares más avanzadas como lookaheads y backreferences . Pero como se noted continuación, la expresión regular aún tiene que ser una expresión regular de JavaScript válida .

VS Code admite búsquedas de expresiones regulares, sin embargo, las referencias y la búsqueda inversa no son compatibles de forma predeterminada. Pero puede habilitarlos con la configuración search.usePCRE2 . Esto configura ripgrep para usar el motor de expresión regular PCRE2. Si bien PCRE2 admite muchas otras características, solo admitimos expresiones regex que todavía son válidas en JavaScript , porque los editores abiertos aún se buscan utilizando la búsqueda basada en JavaScript del editor.

Y para obtener una bonificación si terminó aquí tratando de hacer búsquedas de varias líneas, VS Code agregó recientemente esa función también .