regex - tutorial - regular expressions<>
¿Cómo se usa Notepad++ regex pipe | para cuerdas de más de un personaje? (5)
Estoy tratando de hacer que notepad ++ regex encuentre todas las instancias de "abc" y "def" en la siguiente oración:
El abc fue a la def.
Ninguna de las siguientes sintaxis parece funcionar:
- abc | def
- [abc | def]
- (abc) | (def)
- (abc | def)
NOTA: "[a | d]" coincide con cualquier instancia de "a" o "d" cuando probé
Actualizar a Notepad ++ v6. Desde el registro de cambios: "PCRE (Expresiones regulares compatibles con Perl) es compatible". He verificado que | funciona en la búsqueda de expresiones regulares cuando se usa Notepad ++ v6.
Dentro de una declaración de conjunto de caracteres ( […]
) solo los caracteres /
, ]
y -
son caracteres especiales con las funciones especiales de escapar del siguiente carácter, cerrar la declaración de conjunto de caracteres y marcar un rango de caracteres (solo si no se escriben al principio o final), respectivamente. Cualquier otro personaje es interpretado como un personaje plano.
Asi es tu |
en [a|d]
que significa que [a|d]
describe cualquiera de los caracteres a
, |
o d
y no solo a
o d
como a|d
hace.
El | debería funcionar ahora.
Gracias a la mejora Regex en Notepad ++
abc | def
(abc) | (def)
Estaba teniendo el mismo problema, que es cómo aterricé aquí. Ya que es una deficiencia de notepad ++, podemos hacerlo usando Powershell. En su caso, simplemente ejecute una cadena de selección:
`ss abc,def filename`
Si en Unix tienes otras herramientas como grep, por supuesto.
Reconozco que querías una solución para notepad ++, y yo también, pero a veces tienes que hacerlo.
No es nada especial acerca de "más de un carácter", Notepad ++ no admite el | personaje en regex. Ni siquiera "a | d" funciona. Vea la página de ayuda de expresiones regulares . La versión 6.1.1 de Notepad ++ ahora es compatible |
.
Yo sugeriría usar un editor con una implementación de gvim regulares adecuada como gvim o UltraEdit .