Film / tv transkriptinden alıntıları Notepad ++ 'dan çıkarma


1

Paylaşmak istediğim alıntılarla dolu 3 saatlik bir belgesel belgesine sahibim. Konuşma metni çok büyük, bu yüzden elle geçmek sonsuza dek sürecek.

Yani, temelde, sadece alıntı işaretleri arasında bulunan metinler dışında tüm metni metinden çıkarmak istiyorum: remove "keep" remove.

Bunu Notepad ++ 'ta yapabildiğinizden eminim, sadece nasıl olduğunu bilmiyorum. Birisi lütfen yardımcı olabilir misiniz?

Yanıtlar:


5

Bu sorunun çözümü , bir dizi kural verilen metnin bölümleriyle eşleşen bir araç olan RegEx'in kullanılmasıdır . Kurallarınız oldukça basittir - iki teklif arasındaki her şeyi yakalayın. Regex'teki en iyi kişi değilim, ama aradığınızı karşılayan bir çözüm buldum.

Bunu yapmak için Sublime editörünü kullanmanızı öneririm - ilk önce N ++ 'da kolaylıkla çalışmasını sağlayamadım ve ikincisi, Sublime gerçekten harika!

İşte alıntılarınızı nasıl çıkaracağınız.

  1. Sublime'ta ayıklamak istediğiniz dosyayı açın.
  2. Hit ctrl+fekranın alt kısmında bulmak aracını açmak için.
  3. Bulma aracının en solundaki düğmeye .*sembollerle basın. Bu RegEx eşleşmesini sağlar.
  4. Bulma çubuğuna şunu yazın: "[^"]+"
  5. Bulma aracının en sağında, Tamam'ı tıklatın. Find All
  6. Hit ctrl+ctüm seçimleri kopyalamak için.
  7. Yeni bir dosya açın ctrl+vve seçilen tüm metni yapıştırmak için tıklayın.

RegEx Açıklama

İfadeyi birden fazla bölüme ayıracağım.

"- Bu, ikili bir alıntı ile başlayan metni eşleştirmeye başlar.
[^"]- Bu, başka bir çift alıntı içermeyen tüm metinlerle eşleşir - önemli, çünkü eğer alıntıları eşleştirirsek ilk alıntıdan sonra dosyadaki her şeyi eşleştirmeye başlarız! İstediğimiz bu değil. ^Sembol RegEx'in içinde olumsuzluk karakteridir - bu belirtir değil sonra ne uyuyor.
+"- Bizi yalnızca sonunda başka bir çifte alıntı ile biten bir metinle eşleşmeye zorlar. Bu, belgedeki son alıntıyı belgenin sonuna kadar eşleştirmemizi engeller ve daha önce başladığımız tüm eşleşmeleri eşleştirmek istemediklerimize taşmadan sonlandırır.

Bunu yapmanın daha güzel yolları olduğunu hayal ediyorum ama bunun da ihtiyacınız olanı kapsadığını bekliyorum. Bununla ilgili herhangi bir problemin olursa bana haber ver!

Oh, ve son bir not olarak, Sublime'i önerme nedenimin bir kısmı, aynı anda kolaylıkla farklı metnin bölümlerini seçmesine izin veren çoklu imleçleri desteklemesidir. Bir belge açıp ctrl+middle clickbirkaç farklı noktaya yerleştirmeyi deneyin ve ardından yazmaya başlayın.

Düzenle

Haha, yerleşik RegEx için Notepad ++ 'daki en belirgin noktaya bakmayı tamamen ihmal ettim. Hemen hemen aynı şekilde yapabilirsiniz, ancak tüm metni seçmek için iyi bir yol yoktu. En basit şey "Geçerli Belgede Tümünü Bul" u tıklamak ve ardından alttaki Bul penceresinde oluşturulan tüm metni seçmekti. Ama bu, Sublime’in yönettiği kadar güzel değil.


Soru çözülmüş gibi görünüyor, ancak teklifin satır sonu ile kesilmesi durumunda ne yapardınız?
Kard Nails

@KardNails Satır sonunun bunu etkileyeceğini sanmıyorum - bazı testler yaptım ve görünmüyor. Yeni satır karakteri, \nteklifin reddedilmesi sırasında eşleşir.
Devon Parsons,

İlginç. Bunun neden ".*?"sadece ben eklemeden aynı satırdaki eşleşen karakterleri aradığını açıklayabilir misiniz \s?
Kard Nails

@KardNails Bundan emin değilim. \sBüyük olasılıkla OP'ın Söz konusu en alıntı bulunamadı diye ayırıcı, boşluklar ve sekmeler dahil tüm boşlukları eşleşir. Olduğu söyleniyor, hala yukarıda yayınlanan RegEx'te açıklanmaktadır. RegEx ile uyuşmayan yeni satırlı bir teklifi yeniden oluşturamadım. Kullanmakta olduğunuz tam ifade nedir?
Devon Parsons,

Belirli bir şey yok. Sadece neden kullanmanın .*?sadece her ayrı satırda arama yapacağını anlamaya çalışıyordum . Is not .herhangi bir karakterle eşleşecek gerekiyordu? Bu boşluk, sekme ve satır sonları içermez mi?
Kard Nails,

0

Bunu dene :

  1. Ctrl + H
  2. Neyi bul: ^ (\ l +)
  3. Şununla değiştir: (boş)
  4. Hepsini değiştir

görüntü tanımını buraya girin


Bu regex ne yapmalı?
Kard Nails,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.