Regex Notlarım

Cem Topkaya
3 min readNov 18, 2020

--

Düzensiz şekilde Düzenli İfadelerin notlarını alıyor olacağım. Belki arama motoru sonuçlarında işinize yarayanı bulabilirsiniz diye.

grep İle Renkli & Dizin İçinde RegEx

--color ile aranan kelimenin yerini renklendirir

glob deseniyle içinde aranacak dosyaları seçeriz.

Colou?r (u karakteri 0 veya 1 kez geçebilir)

  • Colo” kısmı kesin eşleşmek zorunda
  • u” karakteri sıfır veya bir kez geçebilir
  • r” karakteri kesinlikle “o” veya “u” karakterini takip etmeli

Capturing (Yakalanan) ve Non Capturing (Yakalanamayan) Gruplar

Parantez içindeki ifadeyi $1, $2 … gibi gruplanmış olarak yakalayabilir ve kullanabilirsiniz. Bul ve değiştir yaparken $grup_sırası ile kullandığımız gibi. Yakalanan gruplar işte bu eşleşmeden sonra kullanabildikleriniz. Yakalanamayan gruplar (non-captuıring) ise sonrasında $grup_sırası şeklinde kullanamadıklarınız.

Look Ahead

  • ?: İfade eşleştirilir ama yakalanmaz.
  • ?= Soneki eşleştir ancak onu yakalama dışında bırak.
    a(?=b) ab metni içinde a ile eşleşir
  • ?! Match if suffix is absent.
    a(?!b) will match the a in ac, but not the a in ab.

?: ve ?= arasındaki fark şudur ?= İfadeyi tüm eşleşmeden hariç tutarken ?: bir yakalama grubu oluşturmaz.

  • () capturing group - (yakalama grubu) parantez içindeki normal ifade eşleşmeli ve eşleşme bir yakalama grubu oluşturmalıdır.
  • (?:) non capturing group - (yakalamayan grup) parantez içindeki normal ifade eşleşmeli, ancak yakalama grubunu oluşturmaz
  • (?=) positive look ahead - (pozitif ileriye bakış ) parantez içindeki ifade eşleşmeli
at ile devam eden her karakteri seçer
  • (?<=) positive look behind- (pozitif geriye bakış ) parantez içindeki ifade eşleşmeli ancak yakalama dışında bırakılmalı
Öncesinde the veya The ile başlayan ve devamındaki tek karakter
  • (?<!) Eşleşmeyenleri seçen
  • (?!) negative look ahead - (negatif ileriye bak ) ifadeyle eşleşmeyen
fat ve cat at ile devam ediyor. Devam etmeyenleri seçiyor

Ref: stackoverflow.com

Örnekler

Başında bu olsun ama seçilmesin

(Access-Control-Allow-Origin:\n\s+)description:.*

Grupladığımız için $1 ile parantez içindekini alabiliyoruz ancak description.* kısmı sizlere ömür

$0 ile CLI araçlarında olduğu gibi tüm eşleşmeyi alıyoruz:

Hedefimize dönersek:

(?<) öncesinde Access-Control-Allow-Origin:\n\s+ (?<!) olmayan description:.*

(?<!Access-Control-Allow-Origin:\n\s+)description:.*

(?<) öncesinde Access-Control-Allow-Origin:\n\s+ (?<=) olandescription:.*

(?<=Access-Control-Allow-Origin:\n\s+)description:.*
    headers:
Access-Control-Allow-Origin:
description: CORS headers
schema:

description:….. seçilsin ve değiştirilsin istiyorum. Ancak birçok yerde description geçiyor ve ben sadece Access-Control-Allow-Origin: satırından sonraki description bilgisini değiştirmek istiyorum.

(?<=Access-Control-Allow-Origin:\n\s+)description:.*

--

--

Cem Topkaya
Cem Topkaya

Written by Cem Topkaya

Evlat, kardeş, ağabey, eş, baba, müzik sever, öğrenmek ister, paylaşmaya can atar, iyi biri olmaya çalışır, hakkı geçenlerden helallik ister vs.

No responses yet