3 dk okuma
Örneklerle PHP'de düzenli ifadeler
Bu dökümanda php’deki regular expressions yani düzenli ifadeler hakkında örnek, cevap şeklinde uygulama üzerine bilgiler edineceksiniz. İşte php’nin eregi komutu ile sorulan RegEx cümleciklerine verdiği cevaplar;
1. ^ Metin başlangıcı
eregi("^o","okul"); // DOGRU
eregi("^o","kul"); // YANLIS
2. $ Metinin sonu
eregi("ul$","okul"); // DOGRU
eregi("ul$","oku"); // YANLIS
3. . Herhangi bir karakter
eregi("^o.ul$","okul"); // DOGRU
eregi("^.kul$","okul"); // DOGRU
eregi("^.kul$","9kul"); // DOGRU
eregi("^oku.$","okul"); // DOGRU
eregi("^oku.$","okuz"); // DOGRU
eregi("^oku.$","okuzu"); // YANLIS
4. k* k’dan sıfır veya daha fazla
// k'dan 1 tane
eregi("k*","okul"); // DOGRU
eregi("^ok*ul","okul"); // DOGRU
// k'dan 0 tane
eregi("k*","oul"); // DOGRU
eregi("^okk*ul","okul"); // DOGRU
eregi("^ok*ul","oul"); // DOGRU
// k'dan 2 tane
eregi("k*","okkul"); // DOGRU
eregi("k*","koku"); // DOGRU
eregi("^ok*ul","okkul"); // DOGRU
eregi("^okk*ul","okkkul"); // DOGRU
// k'dan cok sayida
eregi("^ok*ul","okkkul"); // DOGRU
eregi("^okk*ul","okkkkul"); // DOGRU
eregi("^ok*ul","okkkkkkul"); // DOGRU
5. k+ k’dan bir yada daha fazla
// k'dan 1 tane
eregi("k+","okul"); // DOGRU
eregi("^ok+ul","okul"); // DOGRU
// k'dan 0 tane
eregi("k+","oul"); // YANLIS
eregi("^okk+ul","okul"); // YANLIS
eregi("^ok+ul","oul"); // YANLIS
// k'dan 2 tane
eregi("k+","okkul"); // DOGRU
eregi("k+","koku"); // DOGRU
eregi("^ok+ul","okkul"); // DOGRU
eregi("okk+ul","okkkul"); // DOGRU
// k'dan cok sayida
eregi("^ok+ul","okkkul"); // DOGRU
eregi("^okk+ul","okkkkul"); // DOGRU
eregi("ok+ul","okkkkkkul"); // DOGRU
6. k? k’dan sıfır yada daha bir tane
eregi("k?","okul"); // DOGRU
eregi("ok?ul","okul"); // DOGRU
eregi("ok?ul","okkul"); // YANLIS
eregi("^ok?ul","okul"); // DOGRU
eregi("^ok?ul","oul"); // DOGRU
eregi("^ok?ul","okkkul"); // YANLIS
eregi("^ko?l","kol"); // DOGRU
eregi("^ko?l","kl"); // DOGRU
eregi("^ko?l","koool"); // YANLIS
eregi("^ko?l","kel"); // YANLIS
7. ak | kara ak ya da kara, en az biri
eregi("ak|kara","kara"); // DOGRU
eregi("^(ak|kara)","kara"); // DOGRU
eregi("ak|kara","ankara"); // DOGRU
eregi("^(ak|kara)","ankara"); // YANLIS
eregi("^(ak|kara)$","ankara"); // YANLIS
eregi("(ak|kara)$","ankara"); // DOGRU
eregi("ak|kara","ak"); // DOGRU
eregi("ak|kara","aek"); // YANLIS
eregi("ak|kara","akara"); // DOGRU
eregi("ak|kara","akara"); // DOGRU
eregi("ak|kara","akkara"); // DOGRU
eregi("^(ak|kara)$","akkara"); // YANLIS
eregi("^(ak|kara)(ak|kara)$","akkara"); // DOGRU
eregi("^(ak|kara)(ak|kara)$","akvekara"); // YANLIS
eregi("^(ak|kara)ve(ak|kara)$","akvekara"); // DOGRU
eregi("^(ak|kara)..(ak|kara)$","akvekara"); // DOGRU
eregi("^(ak|kara).(ak|kara)$","akvekara"); // YANLIS
eregi("ak|kara","ak_kara"); // DOGRU
eregi("^(ak|kara)","akk_ara"); // DOGRU
eregi("ak|kara","ak_k_ara"); // YANLIS
8. (oku)* oku’dan sıfır yada daha fazla
eregi("^(oku)*$","oku"); // DOGRU
eregi("^(oku)*$","okul"); // YANLIS
eregi("^(oku)","okul"); // DOGRU
// oku 'dan en başta sıfır tane
eregi("^(oku)","doku"); // DOGRU
eregi("(agir)*","cikacaksinagiragirbumerdivenlerden"); // DOGRU
eregi("(ağır)*","Ağır ağır çıkacaksın bu merdivelerden"); // DOGRU
9. k{a} -> k’dan a tane k{5} -> k’dan 5 tane k{2,6} -> k’dan 2,3,4,5 yada 6 tane
eregi("(agir){1}","agiragircikacaksinbumerdivenlerden"); // DOGRU
eregi("(agir){2}","agiragircikacaksinbumerdivenlerden"); // DOGRU
eregi("(agir){3}","agiragircikacaksinbumerdivenlerden"); // YANLIS
eregi("(agir){0,2}","agiragircikacaksinbumerdivenlerden"); // DOGRU
eregi("(agir){0,2}","agiragircikacaksinbumerdivenlerden"); // DOGRU
eregi("(agir){0,3}","agiragircikacaksinbumerdivenlerden"); // DOGRU
eregi("^(agir){0,3}","agiragircikacaksinbumerdivenlerden"); // DOGRU
eregi("^(agir){0,3}$","agiragircikacaksinbumerdivenlerden"); // YANLIS
Daha önce gösterdiğimiz bazı diğer ifadelerin bu yapıya benzemesi şu şekildedir; k* = k{0,} k+ = k{1,} k? = k{0,1}
10. [a-eKLM] -> a’ dan e’ ye kadar veya K veya L veya M varsa [^a-eKLM] -> a’ dan e’ ye kadar veya K veya L veya M yoksa
eregi("[a-eKLM]","Kalem"); // DOGRU
eregi("[^a-eKLM]","Kalem"); // YANLIS
ereg("[a-eKLM]","kAlEm"); // YANLIS
eregi("[a-eKLM]","kAlEm"); // DOGRU
ereg("[a-eKLM]","KAlEm"); // DOGRU
eregi("[a-eKLM]","kalem"); // DOGRU
eregi("[a-eKLM]","kalemlik"); // DOGRU
eregi("[^a-eKLM]","kalemlik"); // YANLIS
eregi("[^a-eKLM]","uzun"); // DOGRU
eregi("[a-eKLM]","uzun"); // YANLIS
eregi("^[^a-eKLM]$","uzun"); // YANLIS
eregi("^[^a-eKLM]+$","uzun"); // DOGRU
eregi("^[a-eKLM]+$","uzunincebiryoldayim"); // YANLIS
eregi("^[a-eiKLMnoruyz]+$","uzunincebiryoldayim"); // DOGRU
eregi("^[a-eiKLMnoruyz]+$","uzun incebiryoldayim"); // YANLIS
eregi("^[ a-eiKLMnoruyz]+$","uzun incebiryoldayim"); // DOGRU
eregi("^[_a-eiKLMnoruyz]+$","uzun_ince_bir_yoldayim"); // DOGRU
eregi("^[^a-eKLM]+$","uzunincebiryoldayim"); // YANLIS
11. [[. .]] karakterleri
d -> [0-9]D -> [^0-9]t,f = s s S w -> [a-zA-Z0-9]- bütün harfler ve rakamlar
W -> [^a-zA-Z0-9]
Not: Bu dökümanı hazırlayan kim idi bilmiyorum. Fi tarihinde bilgisayarıma txt olarak geçirmişim. Yazan arkadaştan çok özür diliyorum/teşekkür ediyorum, eğer farkeder ve bildirirse hemen burada adını belirtmek isterim. Zira Hiper-faydalı bir yazı/kaynak olduğunu düşündüğüm için yayınlıyorum.
İlgili Yazılar
- 3 min readQBasic'de ekran ve grafik komutları
- 1 min readPHP'de diziler yerine nesnelerle çalışmaya alışmak
- 5 min readPHP+MySQL Sistemler İçin Üye Giriş, Çıkış ve Kayıt İşlemleri
- 2 min readPHP ile Zaman Farkı Hesaplamak
- 4 min readPEAR MDB2 ile Veritabanı İşlemleri: Kapsamlı Rehber
- 6 min readPHP'de Hata Ayıklama (Debug) Teknikleri
Paylaş