Откройте для себя магию использования регулярных выражений для поиска в Java-коде! В мире кодирования регулярные выражения можно рассматривать как секретные коды, которые помогают нам находить конкретную информацию в тексте. Эта статья научит вас основам поиска с помощью регулярных выражений в Java, чтобы вы могли разумно искать документы в разных форматах файлов в папках.
Java API для поиска по регулярным выражениям в документах с помощью Regex
Для выполнения поиска по регулярным выражениям мы будем использовать API GroupDocs.Search for Java. С помощью этого API мы можем искать определенный текст в файлах разных форматов по папкам, просто задав ему шаблон регулярного выражения. Этот инструмент позволяет нам искать текст в различных типах файлов, таких как документы Word, электронные таблицы, презентации, файлы PDF, файлы разметки, электронные книги, сообщения электронной почты, документы One Note и ZIP-архивы, и все это программным способом.
Чтобы получить подробный список поддерживаемых форматов файлов, ознакомьтесь с подробной документацией.
У вас есть два варианта получения файла JAR: загрузить его из раздела загрузок или включить последние конфигурации репозитория и зависимостей Maven непосредственно в ваши приложения Java.
Поиск в файлах с помощью Regex с использованием Java
Вот простые шаги, как выполнить поиск по регулярным выражениям в нескольких файлах разных форматов в папках с помощью Java. После этого вы можете легко создавать выделенные выходные файлы HTML для каждого найденного документа.
- Начните с создания Index, указав путь к папке.
- Добавьте путь к основной папке, в которой вы хотите искать, в только что созданный индекс.
- Настройте поисковый запрос по регулярному выражению.
- Используйте метод поиска, чтобы запустить поиск и получить результаты.
- Теперь вы можете пройти через SearchResults и сгенерировать желаемый результат в соответствии с вашими предпочтениями.
Регулярное выражение в приведенном ниже коде обнаруживает слова с последовательными повторяющимися символами, например «согласен», «позвони» и «скоро». Этот код Java выполняет быстрый поиск с использованием регулярных выражений в различных файлах разных форматов в разных папках.
// Regex Поиск нескольких файлов в папках с использованием Java
// Создание индексной папки и добавление в нее папки документа
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");
// Подготовьте запрос регулярного выражения и выполните поиск
// Регулярное выражение здесь предназначено для идентификации всех слов, имеющих какие-либо последовательные повторяющиеся символы.
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
...
Получение бесплатной лицензии или бесплатной пробной версии
Бесплатная лицензия
Получите временную лицензию бесплатно, чтобы пользоваться этой библиотекой без ограничений.
Бесплатная пробная версия
Вы можете загрузить бесплатную пробную версию из раздела загрузок.
Заключение
В этой статье мы изучили основы чудес поиска Regex для поиска слов с определенными шаблонами в различных текстовых документах, таких как файлы DOCX, PDF и TXT, в нескольких папках с использованием Java. Впоследствии мы продемонстрировали результаты поиска, выделив идентифицированные слова и распечатав их в понятном формате.
Для полного понимания API читателям рекомендуется изучить документацию и Справочник по API.
Любые вопросы или дальнейшее обсуждение можно задать на форуме.