Відкрийте для себе магію використання регулярних виразів для пошуку у вашому коді 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);
Нижче я виділив результати пошуку за регулярним виразом у наданому коді:
Друк результатів пошуку
Наступний код Java пропонує два методи відображення результатів пошуку:
- Виділіть усі знайдені слова.
- Роздрукуйте результати у форматі, який легко читати й аналізувати.
// Виділення та друк результатів пошуку регулярних виразів для всіх документів
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
...
Отримання безкоштовної ліцензії або безкоштовної пробної версії
Безкоштовна ліцензія
Отримайте тимчасову ліцензію безкоштовно, щоб досліджувати цю бібліотеку без обмежень.
Безкоштовне випробування
Ви можете завантажити безкоштовну пробну версію з розділу завантажень.
Висновок
У цій статті ми досліджували основи пошуку регулярних виразів, щоб знаходити слова з певними шаблонами в різноманітних текстових документах, таких як DOCX, PDF і TXT, у кількох папках за допомогою Java. Згодом ми продемонстрували результати пошуку, виділяючи ідентифіковані слова та друкуючи їх у чіткому форматі.
Для повного розуміння API читачам пропонується ознайомитися з документацією і Довідником по API.
З будь-якими запитаннями чи подальшими обговореннями можна звертатися на форумі.