프로그래밍 방식 정규식 검색의 마법을 발견해보세요! 코딩의 세계에서 정규식은 텍스트에서 특정 정보를 찾는 데 도움이 되는 비밀 코드와 같습니다. 이 기사에서는 C#에서 정규식을 사용하여 다양한 파일 형식의 문서를 스마트하게 검색하는 방법을 보여줍니다.

Regex별 문서에서 Regex 검색을 위한 .NET API

정규식 검색의 경우 GroupDocs.Search for .NET API를 활용합니다. 이를 통해 정규식 패턴을 제공하기만 하면 폴더 전체에서 다양한 형식의 파일 내 텍스트를 검색할 수 있습니다. 이 라이브러리를 사용하면 Word 문서, 스프레드시트, 프레젠테이션, PDF 파일, 마크업 파일, eBook, 이메일 메시지, One Note 문서 및 ZIP 아카이브와 같은 광범위한 파일 형식의 텍스트를 프로그래밍 방식으로 검색할 수 있습니다.

지원되는 파일 형식에 대한 자세한 목록은 종합 문서를 참조하세요.

다운로드 섹션에서 DLL 또는 MSI 설치 프로그램을 가져오거나 NuGet을 사용하여 .NET 애플리케이션에 API를 설치할 수 있습니다.

C#을 사용하여 Regex로 파일을 검색하는 방법

C#을 사용하여 폴더 내 다양한 파일 형식의 여러 파일에서 정규식 검색을 수행하려면 다음 단계를 따르세요. 나중에 발견된 각 문서에 대해 강조 표시된 HTML 출력 파일을 쉽게 생성할 수 있습니다.

  • 폴더 경로를 제공하여 색인을 생성합니다.
  • 생성된 인덱스에 검색 디렉터리의 상위 폴더 경로를 추가합니다.
  • 정규식 검색 쿼리를 정의합니다.
  • 검색 결과를 얻으려면 Search 메소드를 사용하여 검색을 실행하십시오.
  • 이제 SearchResults를 반복하여 원하는 대로 출력을 생성할 수 있습니다.

아래 언급된 코드에 사용된 정규식은 다음과 같이 연속적으로 반복되는 문자가 있는 모든 단어를 식별합니다. 추가, 나무, 참조하세요. 다음 C# 코드는 폴더 전체에 걸쳐 다양한 파일 형식의 여러 파일에서 정규식을 사용한 빠른 검색을 수행합니다.

// C#을 사용하여 여러 폴더에 있는 여러 파일에서 RegEx로 검색

// 인덱스 폴더를 생성하고 여기에 문서 폴더 추가
Index index = new Index("indexing-folder-path");
index.Add("path/parent-folder");

// 정규식 쿼리 및 검색 준비
// 여기서 정규식은 연속적으로 반복되는 문자가 있는 모든 단어를 식별하는 것입니다.
string query = "^(.)\\1{1,}"; 
SearchResult result = index.Search(query);

여기서는 위 코드의 정규식 검색 결과를 강조했습니다.

HTML 형식의 Regex 검색 결과 강조 표시

검색 결과 인쇄

다음 C# 코드는 검색 결과를 표시하는 두 가지 방법을 제공합니다.

  1. 찾은 모든 단어를 강조 표시하십시오.
  2. 읽기 및 분석 가능한 형식으로 인쇄
// 모든 문서에 대한 정규식 검색 결과 강조 표시 및 인쇄
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
...

무료 라이센스 또는 무료 평가판 받기

무료 라이센스

이 라이브러리를 제약 없이 무료로 탐색하려면 임시 라이센스를 획득하세요.

무료 시험판

다운로드 섹션에서 무료 평가판을 다운로드할 수 있습니다.

파일 및 폴더 내 검색을 위한 .NET API

결론

이 기사에서는 C#을 사용하여 여러 폴더에 걸쳐 DOCX, PDF, TXT 파일과 같은 다양한 텍스트 기반 문서 내에서 특정 패턴을 가진 모든 단어를 찾는 RegEx 검색의 마법을 살펴보았습니다. 이후 검색된 단어를 강조 표시하고 읽을 수 있는 형식으로 인쇄하여 검색 결과를 제시했습니다.

API에 대한 포괄적인 세부 정보를 보려면 독자는 문서를 참조하는 것이 좋습니다.

모든 문의사항이나 추가 토론은 사용 가능한 포럼으로 문의하실 수 있습니다.

또한보십시오