Java kodunuzda arama yaparken normal ifadeler kullanmanın büyüsünü keşfedin! Kodlama dünyasında, metindeki belirli bilgileri bulmamıza yardımcı olan gizli kodlar gibi normal ifadeleri düşünün. Bu makale size Java’da normal ifadelerle arama yapmanın temellerini öğretecek, böylece klasörler arasında farklı dosya formatlarındaki belgeler arasında akıllıca arama yapabilirsiniz.

Regex ile Belgelerde Regex Araması için Java API

Regex Araması yapmak için GroupDocs.Search for Java API’sini kullanacağız. Bu API ile, klasörler arasında farklı formatlardaki dosyalarda belirli bir metni, ona normal ifade modelini vererek arayabiliriz. Bu araç, Word belgeleri, elektronik tablolar, sunumlar, PDF dosyaları, İşaretleme dosyaları, e-Kitaplar, e-posta mesajları, One Note belgeleri ve ZIP arşivleri gibi çeşitli dosya türlerindeki metinleri programlı bir şekilde aramamıza olanak tanır.

Desteklenen dosya formatlarının ayrıntılı bir listesini almak için ayrıntılı belgeler’e bakın.

JAR dosyasını almak için iki seçeneğiniz vardır: dosyayı indirilenler bölümünden indirin veya en son depo ve bağımlılık Maven yapılandırmalarını doğrudan Java uygulamalarınıza dahil edin.

Java kullanarak Regex ile Dosyalarda Arama Yapmak

Burada, Java kullanarak klasörler içindeki farklı formatlardaki birden çok dosyada normal ifade aramasının nasıl gerçekleştirileceği basit adımlar verilmiştir. Daha sonra, bulunan her belge için zahmetsizce vurgulanmış HTML çıktı dosyaları oluşturabilirsiniz.

  • Klasör yolunu belirterek bir Dizin oluşturarak başlayın.
  • Yeni oluşturduğunuz dizinde aramak istediğiniz ana klasörün yolunu ekleyin.
  • Regex arama sorgusunu ayarlayın.
  • Aramayı çalıştırmak ve sonuçları almak için arama yöntemini kullanın.
  • Artık Arama Sonuçları’na gidebilir ve tercihlerinize göre istediğiniz çıktıyı oluşturabilirsiniz.

Aşağıdaki koddaki normal ifade, katılıyorum, ara ve yakında gibi ardışık tekrarlanan karakterlere sahip kelimeleri algılar. Bu Java kodu, farklı klasörlerdeki farklı formatlardaki çeşitli dosyalarda regex’i kullanarak hızlı bir arama gerçekleştirir.

// Regex Java kullanarak klasörler arasında birden fazla dosyayı arayın

// Bir dizin klasörü oluşturma ve belgenin klasörünü buna ekleme
Index index = new Index("path/indexing-folder-path");
index.add("path/parent-folder");

// Regex Sorgusunu Hazırlama ve Arama
// Buradaki Regex, ardışık tekrarlanan karakterlere sahip tüm kelimeleri tanımlamaktır.
String query = "^(.)\\1{1,}"; 
SearchResult result = index.search(query);

Aşağıda, sağlanan koddaki normal ifade aramasının sonuçlarını vurguladım:

HTML formatında Regex Aramasının Vurgulanan Sonuçları

Arama Sonuçlarını Yazdırma

Aşağıdaki Java kodu, arama sonuçlarınızı görüntülemek için iki yöntem sunar:

  1. Keşfedilen tüm kelimeleri vurgulayın.
  2. Sonuçları okunması ve analiz edilmesi kolay bir formatta yazdırın.
// Tüm belgeler için Regex Arama Sonuçlarını Vurgulama ve Yazdırma
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());

        // Bulunan terimleri yazdırma
        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
...

Ücretsiz Lisans veya Ücretsiz Deneme Alma

Ücretsiz lisans

Bu kitaplığı kısıtlama olmadan keşfetmek için ücretsiz olarak geçici lisans edinin.

Ücretsiz deneme

İndirilenler bölümünden ücretsiz deneme sürümünü indirebilirsiniz.

Dosya ve Klasörler İçinde Arama Yapmak için Java API

Çözüm

Bu makalede, Java kullanarak birden fazla klasördeki DOCX, PDF ve TXT dosyaları gibi çeşitli metin tabanlı belgelerde belirli desenlere sahip kelimeleri bulmak için Regex arama harikalarının temellerini araştırdık. Daha sonra belirlenen kelimeleri vurgulayıp net bir formatta yazdırarak arama sonuçlarını sergiledik.

API’nin kapsamlı bir şekilde anlaşılması için okuyucuların belgeler ve API Referansı’nı incelemeleri önerilir.

Her türlü soru veya daha fazla tartışma forum‘da ele alınabilir.

Ayrıca bakınız