Düzenli İfadeler Kütüphanesi


    × Bunları biliyor muydunuz?
"Databases/ dizini bir veritabanı tablolarının şemasını oluşturup Generate::databases() komutu ile bu şemanın gerçek bir veritabanı ve tablo olarak işlenmesini sağlayabilirsiniz."


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.

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


Dizge içerisinde belirtilen desene göre eşleşme olup olmadığına bakar. Eşleşme varsa bir eşleşme dizi türünde döner.

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    = '[email protected]';
$result  = Regex::match('{word}@{word}.[a-z]{2,3}'$data'{insens}');

output($result);

Parantez Grupları

( ), [ ], { }, < > gibi parantez gruplarının düzenli ifade deseni içerisindeki kullanımları standart kullanımdaki gibi geçerliliğini korur. Bu karakterlerin normal bir karakter gibi kullanılabilmesi için mutlaka \ sembolü ile öncelenmelidir.

 

 

# Replace


Dizge içerisinde belirtilen desene göre eşleşme sağlanması halinde eşleşen veriyi yeni dizge ile değiştirir.

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


Dizge içerisinde geçen özel karakterleri \ karakteri ile önceler.

 Kullanımı

echo Regex::quote('Hello.user');
Hello\.user