Regex ile bul/degiştir (search/replace) yapmak

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
25,785
Kıytırık editörleri iyi editörlerden ayıran önemli özelliklerden birisi regex kullanarak search/replace yapabilmek. Mesela aşağıdaki dosyayı düşünelim:

Kod:
    BLOCK_HARDWARE_INFO,
    BLOCK_SPEAKER_IMPEDANCE,
    BLOCK_INPUT,
    BLOCK_VOLUME,
    BLOCK_GAIN_XLR,
    BLOCK_GAIN_RCA,
    BLOCK_MONO_STEREO,
    BLOCK_TRIGGER_MODE,
    BLOCK_FILTER,
    BLOCK_CARTRIDGE,
    BLOCK_BASS,
    BLOCK_TREBLE,
    BLOCK_HEADPHONE_PREAMP,
    BLOCK_BYPASS,
    BLOCK_ACTIVITY_TIMER,
    BLOCK_NETWORK_SETTINGS,
    BLOCK_BACKGROUND_COLOR,
    BLOCK_DISPLAY_BRIGHTNESS,
    BLOCK_POWER_CALC_METHOD,

Burada her bir satırı öyle bir değiştireceğiz ki, satırdaki ifadeyi bir macro içerisine alacağız. Yani ilk iki satır şöyle olacak:

Kod:
CONFIG_BLOCKDEF(BLOCK_HARDWARE_INFO)
CONFIG_BLOCKDEF(BLOCK_SPEAKER_IMPEDANCE)

Bunu emacs editörünün "Query replace regexp" komutu ile tek hamlede yapabiliyoruz. Tek tek değiştirme ile yapılabilecek olası hataların da önüne geçilmiş oluyor.

1692196527050.png
 
Burada aratılacak regex ve onun yerine yazılacak ifade aşağıda

1692196739698.png


Regex'in tercümesi şu: 0 veya daha fazla boşluk karakteri bul. Sonra BLOCK_ yazısını bul. Sonra, virgüle kadar olan ifadeyi "1" numaralı değişkene at.

Yerine yazılacak ifadenin tercümesi de şu: CONFIG_BLOCKDEF( ile başla. Sonra da "1" numaralı değişkendeki değeri yaz. Sonra da ) koy.
 
Bu kullandığım nispeten basit bir regex. Çok daha karmaşık yapılar kurmak mümkün. Değişik alternatifleri test etmek için aşağıdaki site kullanılabilir.


Her yazılımın regex desteği birbirine denk olmayabiliyor, ama mantık büyük ölçüde aynı. Sadece istisnaları bilmek yeterlidir.
 

Çevrimiçi personel

Forum istatistikleri

Konular
8,238
Mesajlar
135,189
Üyeler
3,275
Son üye
58wincapital

Son kaynaklar

Son profil mesajları

erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Back
Top