Belirli bir dize içeren tüm satırları bulmak için notepad ++ regexp


7

Belirli bir dize içeren bir not defteri ++ regexp arıyorum. Sonra tüm bu satırı silmek istiyorum.


Regexp'in ( \nya \r\nda kullanılan sözleşmeye bağlı olarak) uçlarındaki ya da sonundaki çizginin başlangıcıyla eşleşmesini sağlayın ve değiştirme dizesini hiçbir şey yapmazlar.
martineau

Yanıtlar:


17

Tek bir değişiklikle yapabileceğini sanmıyorum.

Bunu yapardım.

Arama yerini değiştirin, regex modunu seçin ve şunu arayın:

^.*(string).*$ve değişimin \ 1 olmasına izin verin (bu, istemediğiniz satırları işaretleyen dizedir). Bu sadece istenmeyen dize ve başka hiçbir şey ile satırları bırakacaktır.

Ardından, genişletilmiş aramaya geçin \r\nstringve değiştirmeyi boş bırakın ve arayın . Bu, içinde yalnızca istenmeyen bir dize bulunan satırları siler.

Muhtemelen bunu yapmanın daha düzgün bir yolu vardır ama bu işe yarar.

Düzenleme: ve oh, belgenin ilk satırını da yalnızca istenmeyen dizgiye sahip bir satır için kontrol edin; Dediğim gibi, muhtemelen daha iyi bir yol var. ;)


Notepad ++ 'nın TÜMÜNÜ DEĞİŞTİRMESİ gerektiği anlamına mı geliyor? ok
barlop

1

Aynı satırda birden çok dize bulmak için kullanabilirsiniz. ^.\*(string).\*(string).*$



1

Bu yüzden, üç kelimeden birini içeriyorsa bütün bir satırı silmek istedim: LAB, RAD, TRAN. Yani yaptığım şey, bu sözcüklerden birini içeriyorsa tüm satırı eşleştirdiğim Notepad ++ 'da "bul ve değiştir" oldu. Buna ek olarak, yeni satırla (\ n) eşleşmesini ve satır başı (\ r) karakterlerini eşleştirip her şeyi boş bırakmamı sağladı (ei hiçbir şey). Bu şekilde değiştirdiğinde, size yeni bir satır veren gizli karakterler de dahil olmak üzere tüm metni kaldırır. Bu sayede değiştirildikten sonra boş bir satır bırakılmadı.

REGEX:

.*((LAB)|(RAD)|(TRAN)).*\r\n

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.