Khám phá sự kỳ diệu của việc sử dụng các biểu thức chính quy để tìm kiếm trong mã Java của bạn! Trong thế giới mã hóa, hãy nghĩ đến các biểu thức chính quy giống như các mã bí mật giúp chúng ta tìm thấy thông tin cụ thể trong văn bản. Bài viết này sẽ hướng dẫn bạn những kiến thức cơ bản về tìm kiếm bằng biểu thức chính quy trong Java, để bạn có thể tìm kiếm thông minh qua các tài liệu ở các định dạng tệp khác nhau trên các thư mục.

API Java cho Regex Tìm kiếm trong tài liệu bằng Regex

Để thực hiện Tìm kiếm Regex, chúng tôi sẽ sử dụng API GroupDocs.Search for Java. Với API này, chúng ta có thể tìm kiếm văn bản cụ thể trong các tệp có định dạng khác nhau trên các thư mục, chỉ bằng cách cung cấp cho nó mẫu biểu thức chính quy. Công cụ này cho phép chúng tôi tìm kiếm văn bản trong nhiều loại tệp khác nhau, như tài liệu Word, bảng tính, bản trình bày, tệp PDF, tệp Đánh dấu, sách điện tử, email, tài liệu One Note và kho lưu trữ ZIP, tất cả đều theo cách có lập trình.

Để có danh sách chi tiết các định dạng tệp được hỗ trợ, hãy xem tài liệu chi tiết.

Bạn có hai tùy chọn để lấy tệp JAR: tải xuống từ phần tải xuống hoặc kết hợp cấu hình Maven phụ thuộc và kho lưu trữ mới nhất trực tiếp vào các ứng dụng Java của bạn.

Tìm kiếm trong tệp bằng Regex bằng Java

Dưới đây là các bước đơn giản để tiến hành tìm kiếm biểu thức chính quy trong nhiều tệp có định dạng khác nhau trong các thư mục bằng Java. Sau đó, bạn có thể dễ dàng tạo các tệp đầu ra HTML được đánh dấu cho từng tài liệu được định vị.

  • Bắt đầu bằng cách tạo Chỉ mục bằng cách chỉ định đường dẫn thư mục.
  • Thêm đường dẫn của thư mục chính nơi bạn muốn tìm kiếm vào chỉ mục bạn vừa tạo.
  • Thiết lập truy vấn tìm kiếm biểu thức chính quy.
  • Sử dụng phương pháp tìm kiếm để chạy tìm kiếm và nhận được kết quả.
  • Bây giờ, bạn có thể xem qua SearchResults và tạo kết quả mong muốn theo sở thích của mình.

Regex trong mã bên dưới phát hiện các từ có ký tự lặp lại liên tiếp, chẳng hạn như đồng ý, gọi và sớm. Mã Java này tiến hành tìm kiếm nhanh bằng cách sử dụng biểu thức chính quy trong nhiều tệp khác nhau có định dạng khác nhau trong các thư mục khác nhau.

// Regex Tìm kiếm nhiều tệp trên các thư mục bằng Java

// Tạo thư mục chỉ mục và thêm thư mục tài liệu vào đó
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Chuẩn bị truy vấn và tìm kiếm Regex
// Regex ở đây là để xác định tất cả các từ có bất kỳ ký tự lặp lại liên tiếp nào.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Bên dưới, tôi đã đánh dấu kết quả tìm kiếm biểu thức chính quy trong mã được cung cấp:

Kết quả nổi bật của Tìm kiếm Regex ở định dạng HTML

In kết quả tìm kiếm

Mã Java sau đây cung cấp hai phương thức để hiển thị kết quả tìm kiếm của bạn:

  1. Đánh dấu tất cả các từ được phát hiện.
  2. In kết quả ở định dạng dễ đọc và phân tích.
// Đánh dấu và in kết quả tìm kiếm Regex cho tất cả tài liệu
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());

        // In các thuật ngữ được tìm thấy
        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
...

Nhận giấy phép miễn phí hoặc dùng thử miễn phí

Giấy phép miễn phí

Nhận [giấy phép tạm thời] miễn phí để khám phá thư viện này mà không bị ràng buộc.

Dùng thử miễn phí

Bạn có thể tải xuống bản dùng thử miễn phí từ phần tải xuống.

API Java để tìm kiếm trong tệp và thư mục

Phần kết luận

Trong bài viết này, chúng ta đã khám phá những kiến thức cơ bản về tính năng tìm kiếm Regex kỳ diệu để định vị các từ có mẫu cụ thể trong nhiều loại tài liệu dựa trên văn bản như tệp DOCX, PDF và TXT trên nhiều thư mục bằng Java. Sau đó, chúng tôi giới thiệu kết quả tìm kiếm bằng cách đánh dấu các từ đã xác định và in chúng ở định dạng rõ ràng.

Để hiểu rõ hơn về API, người đọc được khuyến khích khám phá tài liệuTham khảo API.

Mọi thắc mắc hoặc thảo luận thêm có thể được giải quyết trong diễn đàn.

Xem thêm