PHP ve Kurallı İfadeler
Kurallı İfadeler (Regular Expressions - regexp)
Kurallı ifadeler öteden beri Unix sistemlerinin vazgeçilmez unsuru olmuştur. Karmaşık metin arama, değiştirme ve çözümleme (text processing and parsing) işlemleri için satırlar dolusu kod yazmak yerine özel semboler ile anlamlı hale getirilmiş tek satırlık bir kurallı ifade kullanılarak aynı sonuç elde edilebilir. Unix kendi sistemi içinde regexp desteği ile gelmekte ve kabuk programları bunları entegre olmuş bir şekilde kullanabilmektedir. Aynı şekilde sed, awk, perl gibi araçlar da regexp kullanımı için örnek verilebilir.
PHP ile Kurallı İfadeler
PHP, kurallı ifadeleri iki farklı şekilde ele almaktadır.
Perl uyumlu kurallı ifadeler klasik regex formatını kullanırlar:
- Bu tür kurallı ifadeler iki tane "/" işareti arasında gösterilirler.
- Karakterler ve karakterlerden oluşan bloklar kullanılır.
- Bloklar, "()" imleçleri arasında gösterilirler.
- "+" işleci sonuna geldiği karakter veya bloğun en az bir kere metin içinde geçtiğini anlatır.
- "*" işleci sonuna geldiği karakter veya bloğun metin içinde sıfır veya daha çok kez geçtiğini anlatır.
- "?" işleci sonuna geldiği karakter veya bloğun sıfır veya bir kere metin içinde geçtiğini anlatır.
- "{num1,num2}" türü bir işleç sonuna geldiği karakter veya bloğun kaç kere metin içinde geçtiğini alt ve üst sınırlar vererek anlatır.
- "?" işleci sonuna geldiği karakter veya bloğun sıfır veya bir kere metin içinde geçtiğini anlatır.
- "." newline ('\n') dışında tüm karakterleri ifade eder.
- "\s", tab ('\t') ve newline ('\n') dahil olmak üzere white space karakterlerini ifade eder.
- "\S", white space karakterler dışındaki tüm karakterleri ifade eder.
- "\d" 0-9 arası rakamları ifade eder
- "\w" harf, rakam ve '_' gibi bütün bir kelimeyi oluşturan karakterleri ifade eder.
- "\W", '\w' nin dışındaki karakterleri ifade eder.
- "^" cümle başlangıcını ifade eder
- "$" cümle bitişini ifade eder
- "\b" kelime başlangıç ve bitişleri için kullanılır.
- "[]" imleçleri arasında rakam veya harf aralığı içinde kalan bir karakter ifade edilir.
- "^" imleci, "[]" imleçleri arasında kullanılırsa seçimi tersine çevirir.
- "|", 'OR' içleci gibi çalışır.
- "\", tüm bu özel karakterleri olduğu gibi yorumlanmasını sağlar.