¡Explore la magia de usar expresiones regulares para buscar en su código Java! En el mundo de la codificación, piense en expresiones regulares como códigos secretos que nos ayudan a encontrar información específica en el texto. Este artículo le enseñará los conceptos básicos de la búsqueda con expresiones regulares en Java, para que pueda buscar de manera inteligente en documentos en diferentes formatos de archivo en carpetas.

API de Java para búsqueda de expresiones regulares en documentos mediante expresiones regulares

Para realizar la búsqueda Regex, usaremos la API GroupDocs.Search for Java. Con esta API, podemos buscar texto específico en archivos de diferentes formatos en carpetas, simplemente dándole el patrón de expresión regular. Esta herramienta nos permite buscar texto en varios tipos de archivos, como documentos de Word, hojas de cálculo, presentaciones, archivos PDF, archivos de marcado, libros electrónicos, mensajes de correo electrónico, documentos de One Note y archivos ZIP, todo de forma programática.

Para obtener una lista detallada de los formatos de archivo admitidos, consulte la documentación detallada.

Tiene dos opciones para obtener el archivo JAR: descargarlo de la sección de descargas o incorporar las últimas configuraciones de repositorio y dependencia de Maven directamente en sus aplicaciones Java.

Buscar en archivos con Regex usando Java

Estos son los pasos simples para realizar una búsqueda de expresiones regulares en múltiples archivos de diferentes formatos dentro de carpetas usando Java. Luego, puede crear fácilmente archivos de salida HTML resaltados para cada documento ubicado.

  • Comience creando un Índice especificando la ruta de la carpeta.
  • Agrega la ruta de la carpeta principal donde deseas buscar en el índice que acabas de crear.
  • Configure la consulta de búsqueda de expresiones regulares.
  • Utilice el método de búsqueda para ejecutar la búsqueda y obtener los resultados.
  • Ahora, puede revisar Resultados de búsqueda y generar el resultado deseado según sus preferencias.

La expresión regular en el código siguiente detecta palabras con caracteres repetidos consecutivos, como aceptar, llamar y pronto. Este código Java realiza una búsqueda rápida utilizando expresiones regulares en varios archivos de diferentes formatos dentro de diferentes carpetas.

// Regex busca múltiples archivos en carpetas usando Java

// Crear una carpeta de índice y agregarle la carpeta del documento
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Prepare la consulta y búsqueda de expresiones regulares
// Regex aquí es para identificar todas las palabras que tienen caracteres repetidos consecutivos.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

A continuación, destaqué los resultados de la búsqueda de expresiones regulares en el código proporcionado:

Resultados destacados de la búsqueda Regex en formato HTML

Imprimir resultados de búsqueda

El siguiente código Java ofrece dos métodos para mostrar los resultados de su búsqueda:

  1. Resalta todas las palabras descubiertas.
  2. Imprima los resultados en un formato que sea fácil de leer y analizar.
// Resaltado e impresión de resultados de búsqueda de expresiones regulares para todos los documentos
for (int i = 0 ; i < result.getDocumentCount(); i++)
{
    FoundDocument document = result.getFoundDocument(i);
  
    OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, "path/Highlight" + i + ".html");
    Highlighter highlighter = new DocumentHighlighter(outputAdapter);
    index.highlight(document, highlighter);
 
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
    for (FoundDocumentField field : document.getFoundFields()) {
        System.out.println("\t\tField: " + field.getFieldName());
        System.out.println("\t\tOccurrences: " + field.getOccurrenceCount());

        // Impresión de términos encontrados
        if (field.getTerms() != null) {
            for (int k = 0; k < field.getTerms().length; k++) {
                System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
            }
        }
    }
}
Document: English.txt
Occurrences: 83
	Field: content
	Occurrences: 82
		acceptance          1
		added               1
		agreeable           1
		agreed              1
		all                 4
		appearance          1
		assurance           1
...
===========================================
Document: Lorem ipsum.docx
	Occurrences: 945
...
Field: content
	Occurrences: 939
		accumsan            39
		class               7
		commodo             40
		convallis           38
		dignissim           35
		efficitur           46
		fringilla           40
		habitasse           2
		laoreet             27
		massa               63
		mattis              31
...

Obtener una licencia gratuita o una prueba gratuita

Licencia gratuita

Obtenga una licencia temporal de forma gratuita para explorar esta biblioteca sin restricciones.

Prueba gratis

Puedes descargar la prueba gratuita desde la sección de descargas.

API de Java para buscar dentro de archivos y carpetas

Conclusión

En este artículo, exploramos los conceptos básicos de las maravillas de búsqueda de Regex para localizar palabras con patrones específicos en una amplia gama de documentos basados en texto, como archivos DOCX, PDF y TXT en varias carpetas utilizando Java. Posteriormente, mostramos los resultados de la búsqueda resaltando las palabras identificadas e imprimiéndolas en un formato claro.

Para comprender a fondo la API, se recomienda a los lectores que exploren la documentación y la Referencia de API.

Cualquier pregunta o discusión adicional se puede abordar en el foro.

Ver también