logo
  • Yazılar
  • Yorumlar
  • Popüler
  • RSS
Son Yazılar
  • PHP Manuel Türkçe (PHP Kılavuzu)
  • Altınkaynak alternatif class api (döviz ve altın)
  • Döviz bilgilerini almak PHP+Cron+JSON+SimpleXML
Son yorumlar
  • omer - PHP Manuel Türkçe (PHP Kılavuzu)…
  • Behzat Erte - PHP Manuel Türkçe (PHP Kılavuzu)…
  • Php Türkçe Ku… - PHP Manuel Türkçe (PHP Kılavuzu)…
Popüler Yazılar
  • Başka siteden istediğiniz datayı alın (40)
  • Video: Smarty’e Giriş (22)
  • Otomatik Subdomain Yaratma (18)
RSS Beslemeleri
  • RSS
  • Yorumlar RSS
  • Geçerli XHTML

RegEx Regular Expressions Düzenli İfadeler 1

icon1 Posted by Altan Tanrıverdi in Kılavuzlar, Php on 11 22nd, 2008 |

Regular Expressions (RegEx) (Düzenli İfadeler) belirli bir metin üzerinde düzenleme, arama, uygunluk testi vb. işlemleri yapmanızı sağlayan en güçlü yardımcı dildir. Dil olarak ifadelendirmeme aldırmayın, 24 saatlik bir çalışma, bu dilin uzmanı olmanıza yeterlidir.

RegEx söz konusu olunca iki önemli terim sıkça kullanılır. Biri string (dizgi); işlenmek üzere elimizde mevcut olan metini ifade eder, diğeri ise pattern (model); metin içerisinde ihtiyacımız olan bilgileri elde etmek için örnek aldığınız şablondur.

RegEx çok güçlü bir yardımcı dil olmasına rağmen istediğiniz işlemi basit fonksiyonlarla yapabiliyorsanız onlarla yapmaya devam edin, RegEx’in daha yavaş olacağını akılda tutmalısınız. RegEx daha çok dizgilerde karmaşık modelleri ararken kullanılmalıdır.

PHP’de RegEx kullanımı önemli bir yer tutmaktadır ve iyi bir PHP yazılımcısı RegEx konusunda da kendini geliştirmelidir.

Başlıyoruz…

“Fenerbahçe Galatasaray maçı 4-1 tamamlandı” :) örneği ile düzenli ifadelere başlayalım.

RegEx: ta
Sonuç: True
Açıklama: Burada dizgimizde ta ifadesini arıyoruz. Galatasaray ve tamamlandı kelimelerinde bu ifade yer alıyor.

RegEx: ^ta
Sonuç: False
Açıklama: ^ ifadesi dizginin başlangıcını ifade eder. Dizgi Fenerbahçe ile başlıyor. Dizgide ta olmasına rağmen ta ile başlamadığı için sonuç dönmeyecektir. Oysa ^Fe model olarak belirlenseydi sonuç döndürecekti.

RegEx: ta$
Sonuç: False
Açıklama: $ ifadesi dizginin sonunu ifade eder. Dizgi tamamlandı ile bitiyor. Dizgide ta olmasına rağmen ta ile bitmediği için sonuç dönmeyecektir. Oysa dı$ model olarak belirlenseydi sonuç döndürecekti.

RegEx: ^ta$
Sonuç: False
Açıklama: Şimdi her ikisini birlikte kullanıyoruz. Böylece kesin bir ifadede bulunmuş olduk. Tüm dizginin ta olması durumunda sonuç dönecektir. Bu örneği ancak ^Fenerbahçe Galatasaray maçı 4-1 tamamlandı$ ifadesi geçerli kılmaktadır.


RegEx: [FG4ti]
Sonuç: True
Açıklama: [] ifadesi içerisinde yer alan F, G, 4, t veya i dizgide aranır. Bunlardan herhangi birinin bulunması ifadeyi True yapacaktır. Örnek olarak i dizgide olmamasına rağmen diğerlerinin olması True döndürür.

RegEx: [a-z]
Sonuç: True
Açıklama: [a-z] ifadesi küçük karakter tüm harfleri dizgide arar. F, G, 4, -, 1 gibi dizgide yer alan karakterleri dışarıda bırakacaktır. Örnekte görüldüğü gibi RegEx Türkçe karakterleri de algılamadı. Türkçe karakterler için yazı dizisinin sonraki bölümlerinde ayrıntıları vereceğim.

RegEx: [^A-Z]
Sonuç: True
Açıklama: [^A-Z] ifadesi ile büyük karakterli harfler dışındaki tüm karakterli dizgide aramış olduk. ^ ifadesi “değildir” olarak tanımlanabilir. Örnekte F ve G dışında tüm karakterleri belirledik.


RegEx: (ma|ta)
Sonuç: True
Açıklama: yukarıda [FG4ti] ile tek karakterleri bir nevi “or” ile belirlemeye çalışmıştık. Ancak aradığımız birden fazla ifade tek karakterli değilse | ifadesi yardımımıza yetişecektir. (ma|ta) ile dizgide ma ve ta modellerini aramış olduk.


RegEx: [a-z]+
Sonuç: True
Açıklama: Yukarıdaki [a-z] ifadesi ile tüm küçük karakterleri bulmuştuk. Eğer bu ifadenin sağına + işaretini koyarsak bununla bir veya daha fazla küçük karakteri aradığımızı belirtmiş oluruz.


RegEx: [0-9]
Sonuç: True
Açıklama: Benzer şekilde rakamları bulmak içinde [0-9] ifadesini kullanıyoruz.


İkinci bölümle birlikte işleri biraz zorlaştıracağız.

İmajlarda kullanılmakta olan programın ismi RegexBuddy‘dir

1 Yorum

  1. avatar Ali Davut:
    Aralık 20th, 2008 | 22:48

    İyi ve yararlı bir yazı olmuş tebrikler, teşekkürler

Yorumla

Uyarı: Yorum onaya tabidir, eklenmesi zaman alabilir. Tekrar göndermenize gerek yoktur.

Yazarlar

  • Altan Tanrıverdi
  • Paul Bakaus
  • Erhan Burhan
  • Tümay Çeber

Kategoriler

  • jQuery
  • Php
  • Gnu - Linux
  • Json
  • Zend
  • Web 2.0
  • Kılavuzlar
  • Tanıtımlar
  • Konu Dışı
  • İpuçları

Anket

  • Sık Kullandığınız FrameWork?

    View Results

Dost Siteler

  • eburhan.com
  • emreguzer.com
  • fatihturan.com
  • ferruh.mavituna.com
  • gokceyalcin.com
  • huysuzadam.com
  • jQuery
  • jQuery Türkiye
  • jQuery UI
  • koodla.com
  • nesimia.com
  • Ohloh
  • ozgurlukicin.com
  • PHP
  • Zend
  • Zend Framework
  • Zend Türkiye
CopyLeft javam. GNU GPL. | Wordpress | Wordpress Türkiye | Lisanslı Tema: Elegant WPT | Sponsor: Türkiye Vitrin