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:
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:
- Keşfedilen tüm kelimeleri vurgulayın.
- 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.
Çö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.