Відкрийте для себе магію використання регулярних виразів для пошуку у вашому коді Java! У світі кодування подумайте про регулярні вирази, як-от секретні коди, які допомагають нам знаходити певну інформацію в тексті. Ця стаття навчить вас основам пошуку за регулярними виразами в Java, щоб ви могли розумно шукати документи в різних форматах файлів у папках.

Java API для пошуку Regex у документах за допомогою Regex

Для пошуку за регулярними виразами ми будемо використовувати API GroupDocs.Search for Java. За допомогою цього API ми можемо шукати певний текст у файлах різних форматів у папках, просто надавши йому шаблон регулярного виразу. Цей інструмент дозволяє шукати текст у файлах різних типів, як-от документи Word, електронні таблиці, презентації, PDF-файли, файли розмітки, електронні книги, повідомлення електронної пошти, документи One Note та архіви ZIP, і все це програмним способом.

Щоб отримати детальний список підтримуваних форматів файлів, перегляньте докладну документацію.

У вас є два варіанти отримання файлу JAR: завантажити його з розділу завантажень або включити останнє сховище та конфігурації залежностей Maven безпосередньо у ваші програми Java.

Пошук у файлах за допомогою Regex за допомогою Java

Ось прості кроки, як виконати пошук за регулярними виразами в кількох файлах різних форматів у теках за допомогою Java. Після цього ви можете легко створювати виділені вихідні файли HTML для кожного знайденого документа.

  • Почніть із створення Індекс, вказавши шлях до папки.
  • Додайте шлях до основної папки, у якій потрібно шукати, у щойно створеному індексі.
  • Налаштуйте пошуковий запит регулярного виразу.
  • Використовуйте метод пошуку, щоб запустити пошук і отримати результати.
  • Тепер ви можете переглянути SearchResults і створити потрібний результат відповідно до ваших уподобань.

Регулярний вираз у наведеному нижче коді виявляє слова з послідовними повторюваними символами, як-от згоден, виклик і незабаром. Цей код Java здійснює швидкий пошук за допомогою регулярного виразу в різних файлах різних форматів у різних папках.

// Regex Пошук кількох файлів у папках за допомогою Java

// Створення індексної папки та додавання до неї папки документа
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Підготуйте Regex Query and Search
// Регулярний вираз тут призначений для визначення всіх слів, які містять будь-які послідовні повторювані символи.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Нижче я виділив результати пошуку за регулярним виразом у наданому коді:

Виділені результати пошуку регулярних виразів у форматі HTML

Друк результатів пошуку

Наступний код Java пропонує два методи відображення результатів пошуку:

  1. Виділіть усі знайдені слова.
  2. Роздрукуйте результати у форматі, який легко читати й аналізувати.
// Виділення та друк результатів пошуку регулярних виразів для всіх документів
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());

        // Друк знайдених термінів
        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
...

Отримання безкоштовної ліцензії або безкоштовної пробної версії

Безкоштовна ліцензія

Отримайте тимчасову ліцензію безкоштовно, щоб досліджувати цю бібліотеку без обмежень.

Безкоштовне випробування

Ви можете завантажити безкоштовну пробну версію з розділу завантажень.

Java API для пошуку у файлах і папках

Висновок

У цій статті ми досліджували основи пошуку регулярних виразів, щоб знаходити слова з певними шаблонами в різноманітних текстових документах, таких як DOCX, PDF і TXT, у кількох папках за допомогою Java. Згодом ми продемонстрували результати пошуку, виділяючи ідентифіковані слова та друкуючи їх у чіткому форматі.

Для повного розуміння API читачам пропонується ознайомитися з документацією і Довідником по API.

З будь-якими запитаннями чи подальшими обговореннями можна звертатися на форумі.

Дивись також