İnsanlar İçin Düzenli İfadeler: Pratik Bir Rehber
Düzenli ifadelerin (regex) bir itibar sorunu var. Birinin klavyesine uyuyakalmış gibi görünürler: ^[\w.-]+@[\w-]+\.[\w.]+$. Kod incelemelerinde, metin düzenleyicilerde, arama araçlarında ve form doğrulamada ortaya çıkarlar.
Gerçek ortadadır. Regex gerçekten güçlüdür. İlk başta gerçekten kafa karıştırıcı da. Ama pratik değer elde etmek için her belirsiz özelliği ustalaşmanız gerekmez. Bir avuç kalıp, gerçek dünya kullanım durumlarının büyük çoğunluğunu kapsar.
Regex Gerçekte Ne Yapar?
Düzenli ifade, bir dizge kümesini tanımlayan bir kalıptır. Onu bir arama aracına verirsiniz ve kalıpla eşleşen her dizgeyi bulur. Çok hassas bir arama sorgusu gibi düşünün.
Normal arama: tam olarak "merhaba"yı bul Regex arama: bir e-posta adresi, telefon numarası, tarih, URL veya tanımlayabileceğiniz herhangi bir kalıba benzeyen her şeyi bul.
Yapı Taşları
Nokta (.) — Herhangi Bir Tek Karakter
Nokta, herhangi bir tek karakterle eşleşir (yeni satır hariç).
h.t, "hat," "hit," "hot," "hut" ve hatta "h3t" ile eşleşir
Karakter Sınıfları ([]) — Belirli Karakterler
Köşeli parantezler, o konumda izin verilen karakterler kümesini tanımlar.
[aeiou]herhangi bir sesli harfle eşleşir[0-9]herhangi bir rakamla eşleşir[^0-9]rakam OLMAYAN herhangi bir karakterle eşleşir
Niceleyiciler — Kaç Tane
| Sembol | Anlam | Örnek | Eşleşir |
|---|---|---|---|
* |
Sıfır veya daha fazla | ab*c |
"ac," "abc," "abbc" |
+ |
Bir veya daha fazla | ab+c |
"abc," "abbc" ("ac" değil) |
? |
Sıfır veya bir | colou?r |
"color" ve "colour" |
{3} |
Tam olarak 3 | a{3} |
"aaa" |
{2,4} |
2 ile 4 arası | a{2,4} |
"aa," "aaa," "aaaa" |
Çapalar — Konum
^başta "dizgenin başlangıcı" anlamına gelir$sonda "dizgenin sonu" anlamına gelir
Kısaltma Sınıfları
| Kısaltma | Eşdeğer | Anlam |
|---|---|---|
\d |
[0-9] |
Herhangi bir rakam |
\w |
[A-Za-z0-9_] |
Herhangi bir "kelime" karakteri |
\s |
[ \t\n\r] |
Herhangi bir boşluk |
Bugün Kullanabileceğiniz Pratik Kalıplar
E-posta Adresi Eşleştirme (Basit)
[\w.-]+@[\w-]+\.[\w.]+
Tarih Eşleştirme (YYYY-AA-GG)
\d{4}-\d{2}-\d{2}
Tekrarlayan Kelimeleri Bulma
\b(\w+)\s+\1\b
"the the" veya "is is" gibi tekrarlanan kelimeleri eşleştirir.
Uyarı Regex ile e-posta doğrulaması mükemmel bir şekilde yapmak son derece zordur. Yukarıdaki basit kalıp gerçek dünya e-posta adreslerinin %99'unu kapsar ama RFC spesifikasyonunda tanımlanan her uç durumu ele almaz.
Regex Yazma İpuçları
1. Basit Başlayın, Sonra İyileştirin
İlk denemede mükemmel regex yazmaya çalışmayın. Geniş bir kalıpla başlayın, verilerinize karşı test edin ve daraltın.
2. Her Zaman Test Edin
Regex'te hata yapmak kolaydır. Eksik bir niceleyici veya kaçırılmamış bir nokta, neyin eşleştiğini tamamen değiştirebilir.
3. Ne Zaman Regex Kullanmamanız Gerektiğini Bilin
Regex, HTML, XML, JSON veya herhangi bir iç içe yapıyı ayrıştırmak için yanlış araçtır. Bunlar için uygun bir ayrıştırıcı kullanın.
İpucu Regex kalıplarınızı gerçek zamanlı olarak test edin ve hata ayıklayın: Regex Kalıplarını Test Etme. Kalıbınızı ve test verilerinizi yapıştırın, eşleşmelerin anında vurgulandığını görün.
Şimdi regex test etmeye başlayın:
Ücretsiz, anında geri bildirim ve kayıt gerekmez.