Düzenli İfadeler Kütüphanesi


    × Bunları biliyor muydunuz?
"URL::base() ve URL::site() kullanımları farklıdır. Özellikle varlık dosyalarına yol verilirken URL::base(), [a] etiketi ile köprü oluştururken URL::site() kullanılmalıdır."


Düzenli ifadeleri belli bir standarda oturtmayı, karmaşık ve anlamsız sembolleri sözcüklerle ifade ederek daha anlamlı kılmayı hedefledik. Bu kütüphanenin kullanım zorunluluğu olmamakla birlikte düzenli ifadeler kavramına yabancı olanlara az da olsa yardımcı olacağını düşünüyoruz.

 

 

# Kurulum


ZN dağıtımları ile dahili gelmektedir kurulum gerektirmez.

↓ composer require znframework/package-zerocore

 

 

# Özel Çevrimler


Düzenli ifadelerdeki desen parametrelerinin ZN Regex kütüphanesinde ne gibi değişikliğe uğradığı aşağıdaki tabloda gösterilmiştir.

ZN İfade Orijinal İfade Anlamları Örnek
5.8.2.2 {/} ($|\/) İfade sonu, / ile devam etmeli veya herhangi bir karakter almadan bitmelidir.  abc abc/x
1.0.0 {nonWord} \W+ Sayı, harf ve alt-tire olmayan karakterler. *-+=)
1.0.0 {word} \w+ Sayı, harf ve alt-tire olan karakterler. a9_
1.0.0 {nonNumeric} \D Rakam olmayan karakter. A#
1.0.0 {numeric}|{num} \d 0 ile 9 arasında bir rakam 3
1.0.0 {specialChar}|{schar} \W Sayı, harf ve alt-tire olmayan tek bir karakter *+!
1.0.0 {nonSpecialChar}|{nonSchar} \w Sayı, harf ve alt-tire olan tek bir karakter. a
4.0.0 {alpha} [a-zA-Z]+ Sadece harf olan karakterler. Ab
4.0.0 {alnum} [a-zA-Z0-9]+           Sadece harf veya sayı olan karakterler. 9Ab
4.0.0 {number} [0-9]+ Sadece sayı olan karakterler. 54
1.0.0 {char}|{any} . Herhangi bir karakter. $
1.0.0 {nonSpace} \S Boşluk olmayan karakter. b
1.0.0 {space} \s Boşluk olan karakter. \s
1.0.0 {starting}|{start} ^ İle başlayan. ^a
1.0.0 {ending}|{end} $ İle biten. a$
1.0.0 {repeatZ}|{iterate} * Sıfır veya daha fazla kez. a*
1.0.0 {repeat} + En az bir veya daha fazla a+
1.0.0 {whether} ? Bir karakter olur veya olmaz. a?
1.0.0 {or} | Veya. a|b
1.0.0 {eol} \r\n Satır sonu.  
1.0.0 {tab} \t Tab.  
1.0.0 {insens} i Büyük küçük harf duyarlılığını yok sayar.  
1.0.0 {generic} g İlk eşleşmede durmaz, kapsamlı tarama yapar.  
1.0.0 {each} s Satır başı hariç her şeyi ifade eden nokta karakterinin satır başını da ifade etmesini sağlar  
1.0.0 {multiline} m ^ ve $ karakterlerinin her satırın başını ve sonunu ifade etmesini sağlar.  
1.0.0 {inspace} x Boşluk karakterlerini yok sayar.  

Listeye kendinize özel ifade eklemek için aşağıdaki yapılandırma dosyasını kullanabilirsiniz.

Dosya: Settings/Expressions.php -> regex
Uyarı: Desenler yazılırken bazı özel karakterleri normal karakter gibi kullanmak için başlarına konulan taksim(\) işaretinin kullanımına gerek yoktur. İstisnası sadece parantez grupları ve (-) tire'dir..

 

 

# Yöntemler


Array match(String $pattern, String $data, String $ex = NULL, String $del = '/')
Array matchAll(String $pattern, String $data, String $ex = NULL, String $del = '/')
String replace(String $pattern, String $rep, String $data, String $ex = NULL, String $del = '/')
String quote(String $data, String $delimiter = NULL)
String to(String $data)
String group(String $data)
String recount(String $data)
 

 

# Match (ZN >= 1.0.0)


PHP preg_match() ve preg_match_all() fonksiyonlarının düzenlenmiş ve belli bir standarda oturtulmuş halidir.

Parametreler

String $pattern Verinin eşleştirileceği desen.
String $data Veri.
String $extraChars Düzenli ifadelerin extra karakter kontrolü.
String $delimiter = '/' Düzenli ifadeler desen ayracı.
Return Array

Kullanımı

$data    = 'https://www.znframework.com';
$pattern = '{char}{repeatZ}://w{repeat}.{char}{repeatZ}.com';
$result  = Regex::match($pattern, $data);

output($result);
0 => string 'https://www.znframework.com' ( length = 28 )

Dikkat edilirse yukarıda kullanılan / veya . gibi özel karakterlerin başına işareti getirilmemiştir buna rağmen normal bir karakter gibi değerlendirilmiştir.

 

 

# Replace (ZN >= 1.0.0)


PHP preg_replace() fonksiyonunun düzenlenmiş ve belli bir standartda oturtulmuş halidir.

Parametreler

String $pattern Verinin eşleştirileceği desen.
String $replace Eşleşenlerin hangi ifade ile değiştirileceği.
String $data Veri.
String $extraChars Düzenli ifadelerin extra karakter kontrolü.
String $delimiter = '/' Düzenli ifadeler desen ayracı.
Return String

Kullanımı

$data    = 'https://www.znframework.com';
$replace = 'www.';
$result  = Regex::replace($replace, '', $data);

echo $result;
https://znframework.com 

 

 

# Quote (ZN >= 2.0.0)

Bu yöntem preg_quote() yönteminin kullanımı ile aynıdır.

Kullanımı

echo Regex::quote('Hello$user');
Hello|$user