Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 1.8 KB

php.regex.md

File metadata and controls

42 lines (31 loc) · 1.8 KB

Regular expression (regex)

Türkçesiyle düzenli ifadeler metinlerde bir biçimsel dil kullanarak tarif edilen kısımları seçip ayırmamıza yarayan bir programdır.

Regex'i kullanabilmemiz için php de bilmemiz gereken bazı fonksiyonlar vardır.

preg_match

Bir düzenli ifadeyi eşleştirmeye çalışır.

preg_match_all

Kapsamlı bir düzenli ifade eşleştirmesi yapar.

$IsimSoyisim = "Kemal.Mutlu";
$pattern = '/([a-zA-Z]+).([a-zA-Z]+)/';
preg_match_all($desen, $IsimSoyisim, $dizi);
print_r($dizi);

Yukarıdaki örnekte Kemal.Mutlu yazısını parçaladık.a-zA-Z büyük küçük farketmeden bütün harfleri almamızı sağlar.Parantez içine aldığımızda ise bunları gruplar.([a-zA-Z]+). bu bölüm bize "." ya kadar olan bölümü bir grup yaptı.Diğer grubada aynı işlemi uyguladığımızda Kemal'i ve Mutlu'yu ayırmış oluyoruz.

Php de desen yazarken bir sınırlayıcı belirtmemiz şarttır.Örnek verecek olursak:

  • /desen/
  • #desen#
  • @desen@
  • _desen_ Yani bir deseni yazmak için bir sınırlayıcı belirtiyoruz ve deseni o sınırlayıcı ile sonlandırıyoruz.

Aşağıdaki örneği ele alalım.Bir dosyamız var ve ieçrisindeki şehirleri ve isimleri ayırmak istiyoruz.O zaman yapmamız gereken nereden ayıracağımıza karar vermek.

Dosyamızın içerisinde bu bilgilerin olduğunu düşünelim:

  • ANKARA: Nuri Akman
  • ÇANAKKALE: Kemal Mutlu

Bunun için şöyle bir desen yazabiliriz:

$dosya =  file_get_contents('file.txt'); //Dosyamızı çağırdık.
          $desen = '/(.*):(.*)/'; // Desenini belirttik.
          preg_match_all($desen,$dosya, $dizi); // Dizi adlı değişkene dizi olarak kaydettik.

Buradaki desen bize şunu anlatıyor.En baştan başla ":" gelince dur bir grup yap.":" noktadan sonra başla sona kadar git bir grup yap.