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 .