En Textpad o Notepad++, ¿existe una opción para exportar todas las coincidencias para una búsqueda de expresión regular, como una lista única?
En un archivo de texto grande, estoy buscando etiquetas (palabras encerradas en % %), usando expresiones regulares %\< and \>%
y quiero todas las coincidencias en una lista única, para poder eliminar duplicados usando Excel y obtener una lista de etiquetas únicas.
Respuesta1
Puedes lograr esto usandoReferencias anterioresy la funcionalidad Buscar y marcar en Notepad++.
Encuentre las coincidencias usando expresiones regulares (digamos
%(.*?)%
) y reemplácelas por\n%\1%\n
, después de esto tendremos nuestra palabra objetivo en líneas separadas (es decir, ninguna línea tendrá más de una palabra coincidente)Utilice la función Buscar-->Buscar-->Marcar para marcar cada línea con expresiones regulares
%(.*?)%
y recuerde marcar 'Línea de marcador' antes de marcar el texto- Seleccione Buscar-->Marcador-->Eliminar líneas sin marcar
- Guarde el texto restante. Es la lista requerida.
Respuesta2
esta haciendo estoen¿Notepad++ es un requisito obligatorio? ¿Estás en Windows o alguna forma de Unix? Si estás en Windows, puedes hacerlo (parcialmente) desde el símbolo del sistema:
findtr /r "%[az].*[az]% %[az]%"tu archivo>archivo nuevo
findstr
está vagamente inspirado en grep
, por lo que estoarchivo nuevo
contendrá todoslíneascoincidir con sus criterios de búsqueda; luego puedes usar Notepad++ para eliminar el texto no deseado (a la izquierda del primer % y a la derecha del segundo).
Y, por supuesto, si utilizas Unix, puedes realizar la tarea equivalente con sed
. Y si tienes GNU grep
(es decir, si estás en Linux), puedes hacerlo con grep -o
.
Respuesta3
Hay un complemento de Notepad ++ que puede copiar expresiones regulares coincidentes a un archivo nuevo en una pestaña nueva. Extracto de expresiones regulares
Como no encontré ningún complemento para Notepad++ que pueda extraer texto del documento actual o todos los archivos de una ubicación con algunas configuraciones adicionales (como la conversión de mayúsculas y minúsculas), decidí intentar hacerlo yo mismo. (...) La interfaz del complemento es bastante sencilla (...). (...) Los campos "Buscar", "Reemplazar" y "Máscara" utilizan la sintaxis de expresiones regulares de C++11. La extracción de archivos funciona ahora solo para aquellos en UTF8.
Editar Entrada de diálogo adaptada a la pregunta
En la imagen puedes ver cómo rellenar el diálogo. Supongo que una palabra no contiene espacios, etc., sólo caracteres que coinciden con \w. Notablemente:
- Utilice un par de corchetes para permitir seleccionar la palabra, sin los caracteres de porcentaje.
- Elige la opciónExtraer con reemplazar, para seleccionar la primera coincidencia. De lo contrario, obtendrá una salida en columnas de todos los $1, $2, etc.
- ControlarSaltar $&...para dejar fuera los partidos completos.
- ControlarFiltrar únicoinformar cada partido sólo una vez.
- Hacer clicExtractopara seleccionar obtener resultados. (Buscarsólo encuentra las coincidencias, pero no informa).
Respuesta4
Si alguien está interesado en una solución en línea (ya que el complemento notepad++ no funciona en 64 bits), puede probarMolbioherramientaspuede extraer su expresión regular completamente sin líneas adicionales o con ellas.