Відкрийте магію програмного пошуку регулярних виразів! У світі програмування регулярні вирази схожі на секретні коди, які допомагають нам знаходити певну інформацію в тексті. Ця стаття покаже вам, як виконувати пошук за регулярним виразом у C#, щоб розумно шукати документи різних форматів файлів.
.NET API для пошуку Regex у документах за допомогою Regex
Для Regex Search ми будемо використовувати GroupDocs.Search for .NET API. Це дозволяє нам шукати текст у файлах різних форматів у папках, просто надавши шаблон регулярного виразу. Ця бібліотека дає нам змогу програмно шукати текст у різноманітних форматах файлів, таких як документи Word, електронні таблиці, презентації, файли PDF, файли розмітки, електронні книги, повідомлення електронної пошти, документи One Note та архіви ZIP.
Щоб отримати докладний список підтримуваних форматів файлів, зверніться до вичерпної документації.
У вас є можливість отримати DLL або інсталятор MSI із розділу завантажень, або ви можете встановити API у свою програму .NET за допомогою NuGet.
Як шукати у файлах за регулярним виразом за допомогою C#
Виконайте такі кроки, щоб виконати пошук за регулярними виразами в кількох файлах різних форматів у папках за допомогою C#: Пізніше ви зможете легко створити виділені вихідні файли HTML для кожного знайденого документа.
- Створіть Індекс, указавши шлях до папки.
- Додайте шлях до батьківської папки для каталогу пошуку до створеного індексу.
- Визначте пошуковий запит регулярного виразу.
- Щоб отримати результати пошуку, виконайте пошук за допомогою методу Search.
- Тепер ви можете виконати ітерацію в SearchResults, щоб створити результат, який вам подобається.
Регулярний вираз, який використовується у наведеному нижче коді, визначає всі слова, які мають послідовні повторювані символи, наприклад; доданий, деревина, і див. Наступний код C# виконує швидкий пошук за регулярним виразом у кількох файлах різних форматів у папках.
// Пошук за RegEx у кількох файлах у кількох папках за допомогою C#
// Створення індексної папки та додавання до неї папки документа
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");
// Підготуйте Regex Query and Search
// Регулярний вираз тут призначений для визначення всіх слів, які містять будь-які послідовні повторювані символи.
string query = "^(.)\\1{1,}";
SearchResult result = index.Search(query);
Тут я виділив результати пошуку регулярних виразів у наведеному вище коді:
Друк результатів пошуку
Наведений нижче код C# пропонує два способи представлення результатів пошуку.
- Виділіть усі знайдені слова.
- Друкуйте в зручному для читання та аналізу форматі
// Виділення та друк результатів пошуку регулярних виразів для всіх документів
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
OutputAdapter outputAdapter = new FileOutputAdapter(OutputFormat.Html, indexFolder + "/Highlight" + i + ".html");
Highlighter highlighter = new DocumentHighlighter(outputAdapter);
index.Highlight(document, highlighter);
Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
for (int j = 0; j < document.FoundFields.Length; j++)
{
FoundDocumentField field = document.FoundFields[j];
Console.WriteLine("\t\tField: " + field.FieldName);
Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount);
// Друк знайдених термінів
if (field.Terms != null)
{
for (int k = 0; k < field.Terms.Length; k++)
{
Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
}
}
}
Console.WriteLine("===========================================");
}
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, у кількох папках за допомогою C#. Після цього ми представили результати пошуку, виділивши шукані слова та надрукувавши їх у зручному для читання форматі.
Щоб отримати детальну інформацію про API, читачам радимо звернутися до документації.
Будь-які запитання чи додаткові обговорення можна направляти на доступний форум.