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:
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:
- Đánh dấu tất cả các từ được phát hiện.
- 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.
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ệu và Tham 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.