regular - Notepad++ Sintaxis de retroreferencia Regex en Buscar/Reemplazar-/ 1 o $ 1
regular expression |] (1)
Intenté utilizar Notepad ++ Search / Replace con una expresión regular para reemplazar palabras específicas con versiones más cortas de esas palabras.
Usé la siguiente expresión regular para hacer coincidir cada palabra que termine con er
(pero no er
como palabra) - y reemplace las palabras coincidentes con las mismas palabras menos la terminación r
, usando una retro-referencia:
Find what:
([a-zA-z]+e)r
Replace with:
$1
Pero no reemplaza las palabras coincidentes, aunque las encuentre.
Sin embargo, si cambio la sintaxis de referencia a esto:
Replace with:
/1
Todo funciona bien
¿Por qué no funciona la retro referencia de $1
?
¿Cuál es la diferencia entre las dos formas de backrefernce - /1
y $1
?
Las versiones anteriores de Notepad ++ (v5.9.8 y anteriores) solo admitían expresiones regulares POSIX estándar. Sin embargo, se agregó compatibilidad completa de búsqueda / reemplazo compatible con PCRE (Perl Compatible Regular Expression) en la versión 6.0:
Nuevas características y mejoras en Notepad ++ 6.0:
- PCRE (Perl Compatible Regular Expressions) es compatible.
Esto significa que si está utilizando Notepad ++ v6.0 o una versión más nueva (por ejemplo, v6.1.5), puede usar la sintaxis PCRE y usar $1
lugar de /1
para la retro-referencia, pero no será compatible con versiones anteriores de Notepad ++ (anterior a la versión 6.0). Aparte de eso, son similares.
Para obtener más información sobre las diferencias entre la sintaxis de retroreferencia y las razones detrás del nuevo soporte de sintaxis, consulte la sintaxis de Backreferences en cadenas de reemplazo (¿por qué signo de dólar?) .
Un útil tutorial sobre cómo usar expresiones regulares en Notepad ++ se puede encontrar here .