Düzenli ifade, bir metinden belirli bir deseni bulmak için kullanılan bir karakter veya sembol grubudur.
Bir düzenli ifade soldan sağa söz konusu harf öbekleriyle eşleşen bir desendir. “Regular expression” söylemesi zor bir tabir olduğundan dolayı, genellikle “regex” ya da “regexp” olarak kısaltılmış olarak bulacaksınız. Düzenli ifade bir harf öbeğinde ki bir metin değiştirmek, form doğrulamak, bir desen eşleşmesine dayalı harf öbeğinden bir alt harf öbeği ayıklamak ve çok daha fazlası için kullanılır.
Bir uygulama yazdığınızı hayal edin ve bir kullanıcı adını seçtiğinde, bu kullanıcı adı için kurallar belirlemek istiyorsunuz. Kullanıcı adının harfler, sayılar, altçizgiler ve tireler içermesine izin vermek, ayrıca, kullanıcı adındaki karakter sayısını sınırlamak istiyorsunuz, böylece çirkin görünmeyecek. Böyle durumlarda kullanıcı adını doğrulamak için aşağıdaki düzenli ifadeyi kullanıyoruz:
Yukardaki düzenli ifade john_doe, jo-hn_doe ve john12_as gibi girişleri kabul edebilir. Jo girişi uyuşmaz, çünkü harf öbeği büyük harf içeriyor ve aynı zamanda uzunluğu 3 karakterden az.
Bir düzenli ifade bir metin içinde arama yapabilmek için kullandığımız bir karakter desenidir. Örneğin, the düzenli ifadesi şu anlama gelir: t harfi ardından h, ardından e harfi gelir.
1
"the"=>The fat cat sat on<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>the</strong></a>mat.
123 düzenli ifadesi 123 harf öbeğiyle eşleşir. Düzenli ifade birbiri ardına, girilen harf öbeğindeki her karakter düzenli ifadenin içindeki her karakterle karşılaştırılarak eşleştirilir. Düzenli ifadeler normal olarak büyük/küçük harfe duyarlıdırlar, yani The düzenli ifadesi the harf öbeğiyle eşleşmez.
1
"The"=><ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>The</strong></a>fat cat sat on the mat.
Meta karakterler düzenli ifadelerin yapı taşlarıdırlar. Meta karakterler kendileri için değil bunun yerine bazı özel yollarla yorumlanırlar. Bazı meta karakterler özel anlamları vardır ve bunlar köşeli parantez içinde yazılırlar.
Meta karakterler aşağıdaki gibidir:
Meta karakter
Açıklama
.
Satır sonuç hariç herhangi bir karakterle eşleşir.
[ ]
Köşeli parantezler arasında bulunan herhangi bir karakterle eşleşir.
[^ ]
Köşeli parantez içerisinde yer alan ^ işaretinden sonra girilen karakterler haricindeki karakterlerle eşleşir.
*
Kendisinden önce yazılan karakterin sıfır veya daha fazla tekrarı ile eşleşir.
+
Kendisinden önce yazılan karakterin bir veya daha fazla olan tekrarı ile eşleşir.
?
Kendisinden önce yazılan karakterin varlık durumunu opsiyonel kılar.
{n,m}
Kendisinden önce yazılan karakterin en az n en fazla m değeri kadar olmasını ifade eder.
(xyz)
Verilen sırayla xyz karakterleriyle eşleşir.
|
Karakterden önce veya sonra verilen ifadelerin herhangi biriyle eşleşebilir. İfadeye Yada anlamı katar.
\
[ ] ( ) { } . * + ? ^ $ \ | özel karakterin aranmasını sağlar.
^
Girilen verinin başlangıcını ifade eder.
$
Girilen verinin sonunu ifade eder.
2.1 Nokta
Nokta . meta karakterlerin en basit örneğidir. . meta karakteri satır başlangıcı hariç herhangi bir karakterle eşleşir. Örneğin, .ar düzenli ifadesinin anlamı: herhangi bir karakterin ardından a harfi ve r harfi gelir.
Karakter takımları aryıca Karakter sınıfı olarak bilinir. Karakter takımlarını belirtmek için köşeli ayraçlar kullanılır. Karakterin aralığını belirtmek için bir karakter takımında tire kullanın. Köşeli parantezlerdeki karakter aralığının sıralaması önemli değildir.
Örneğin, [Tt]he düzenli ifadesinin anlamı: bir büyük T veya küçük t harflerinin ardından sırasıyla h ve e harfi gelir.
Bununla birlikte, bir karakter takımı içerisindeki bir periyot bir tam periyot demektir.
ar[.] düzenli ifadesinin anlamı: Küçük a karakteri ardından r harfi gelir, ardından bir . karakteri gelir.
1
"ar[.]"=>Agarage isagood place toparkac<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>ar.</strong></a>
+, * ya da ? meta karakterlerinden sonra bir alt desenin kaç defa tekrar edebileceğini belirtmek için kullanılır. Bu meta karakterler farklı durumlarda farklı davranırlar.
2.3.1 Yıldız İşareti
* sembolü, kendinden önce girilen eşlemenin sıfır veya daha fazla tekrarıyla eşleşir. Ama bir karakter seti ya da sınıf sonrasına girildiğinde, tüm karakter setinin tekrarlarını bulur.
a* düzenli ifadesinin anlamı: a karakterinin sıfır veya daha fazla tekrarları, [a-z]* düzenli ifadesinin anlamı ise bir satırdaki herhangi bir sayıdaki küçük harfler anlamına gelir.
* sembolü . meta karakteri ile .* karakterinin herhangi harf öbeğine eşleştirmek için kullanılabilir. * sembolü boşluk karakteriyle \s bir harf öbeğinde boşluk karakterlerini eşleştirmek için kullanılabilir.
Örneğin, \s*cat\s* düzenli ifadesinin anlamı: sıfır veya daha fazla boşluk ardından küçük c karakteri gelir, ardından küçük a karakteri gelir, ardından küçük t karakteri gelir, ardından sıfır veya daha fazla boşluk gelir.
1
"\s*cat\s*"=>The fat<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>cat</strong></a>sat on the<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex">con<strong>cat</strong>enation</a>.
+ sembolü, kendinden önce girilen eşlemenin bir veya daha fazla tekrarıyla eşleşir.
Örneğin, c.+t ifadesinin anlamı: küçük c harfi, ardından en az bir karakter gelir, ardından küçük t karakteri gelir. Örnekte açıklamak gereken önemli nokta: t harfi cümledeki son t harfi olacaktır. c ve t harfi arasında en az bir karakter vardır.
1
"c.+t"=>The fat<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>cat sat on the mat</strong></a>.
Düzenli ifadelerde ? meta karakterinden önce girilen karakteri opsiyonel olarak tanımlar. Bu sembol önce gelen karakterin sıfır veya bir örbeğiyle eşleşir.
Örneğin, [T]?he ifadesinin anlamı: opsiyonel büyük T harfi, ardından küçük h karakteri gelir, ardından küçük ekarakteri gelir.
Düzenli ifadelerde miktar belirliyiciler olarakda bilinen süslü parantezler, bir karakterin veya karakter grubunun kaç defa tekrar edebileceğini belirtmek için kullanılırlar.
Örneğin, [0-9]{2,3} ifadesinin anlamı: 0 ile 0 aralığındaki karakterlerden, en az 2 en fazla 3 defa ile eşleş.
1
"[0-9]{2,3}"=>The number was9.<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>999</strong></a>7but we rounded it off to<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>10</strong></a>.0.
Örneğin, [0-9]{2,} ifadesinin anlamı: En az 2 veya daha fazla defa eşleş. Düzenli ifadeden virgülü kaldırırsak [0-9]{3}: doğrudan 3 defa eşleşir.
1
"[0-9]{2,}"=>The number was9.<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>9997</strong></a>but we rounded it off to<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>10</strong></a>.0.
"[0-9]{3}"=>The number was9.<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>999</strong></a>7but we rounded it off to10.0.
Karakter grubu parantezler içine yazılmış alt desenler grubudur. Daha önce tasarım deseninde değindiğimiz gibi, bir karakterden önce bir miktar belirleyici koyarsak önceki karakteri tekrar eder. Fakat miktar belirleyiciyi bir karakter grubundan sonra koyarsak tüm karakter grubunu tekrarlar.
Örneğin: (ab)* düzenli ifadesi “ab” karakterinin sıfır veya daha fazla tekrarıyla eşleşir.
Ayrıca karakter grubu içinde | meta karakterini kullanabiliriz.
Örneğin, (c|g|p)ar düzenli ifadesinin anlamı: küçük c, g veya p karakteri, ardından a karakteri, ardından rkarakteri gelir.
Düzenli ifadede dik çizgi alternasyon(değişim, dönüşüm) tanımlamak için kullanılır. Alternasyon birden fazla ifade arasındaki bir koşul gibidir. Şu an, karakter grubu ve alternasyonun aynı şekilde çalıştığını düşünüyor olabilirsiniz. Ama, Karakter grubu ve alternasyon arasındaki büyük fark karakter grubu karakter düzeyinde çalışır ama alternasyon ifade düzeyinde çalışır.
Örneğin, (T|t)he|car düzenli ifadesinin anlamı: Büyük T ya da küçük t karakteri, ardından küçük h karakteri, ardından küçük e ya da c karakteri, ardından küçük a, ardından küçük r karakteri gelir.
\ işareti sonraki karakteri hariç tutmak için kullanılır. Bu bir semboülü ayrılmış karakterlerde { } [ ] / \ + * . $ ^ | ? dahil olmak üzere eşleşen bir karakter olarak belirtmemizi sağlar. Bir özel karakteri eşleşen bir karakter olarak kullanmak için önüne \ işareti getirin.
Örneğin, . düzenli ifadesi yeni satır hariç herhangi bir karakteri eşleştirmek için kullanılır. Bir harf öbeği içinde nokta .karakterini yakalamak için . ayrılmış karakterini hariç tutmamız gerekir. Bunun için nokta önüne \ işaretini koymamız gereklidir.
(f|c|m)at\.? düzenli ifadesinin anlamı: küçük f, cya da m harfi, ardından küçük a harfi, ardından küçük t harfi, ardından opsiyonel . karakteri gelir.
1
"(f|c|m)at\.?"=>The<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>fat</strong></a><ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>cat</strong></a>sat on the<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>mat.</strong></a>
Düzenli ifadelerde, eşleşen sembolün girilen harf öbeğinin başlangıç sembolü veya bitiş sembolü olup olmadığını kontrol etmek için sabitleyicileri kullanırız. Sabitleyiciler iki çeşittir: İlk çeşit, eşleşen karakterin girişin ilk karakteri olup olmadığını kontrol eden şapka ^ karakteri, ikinci çeşit ise eşleşen karakterin girişin son karakteri olup olmadığını kontrol eden dolar $ karakteridir.
2.8.1 Şapka İşareti
Şapka ^ işareti eşleşen karakterin giriş harf öbeğinin ilk karakteri olup olmadığını kontrol etmek için kullanılır. Eğer ^adüzenli ifadesini abc harf öbeğine uygularsak a ile eşleşir. Ama ^b ifadesini uygularsak bir eşleşme bulamayız. Bunun nedeni abc harf öbeğinde b karakterinin başlangıç karakteri olmamasıdır.
Bir başka örnek üzerinden ilerlersek,
^(T|t)he düzenli ifadesinin anlamı: büyük T ya da t karakteri giriş harf öbeğinin ilk karakteri olmak üzere, ardından küçük h, ardından küçük e karakteri gelir.
Dolar $ işareti eşleşen karakterin giriş harf öbeğinin son karakteri olup olmadığını kontrol etmek için kullanılır.
Örneğin, (at\.)$ ifadesinin anlamı: küçük bir a karakteri, ardından küçük bir t karakteri, ardıdan nokta . karakteri gelir ve bu eşleşme harf öbeğinin sonunda olmalıdır.
Regex, sık olarak kullanılan düzenli ifadeler için özel karakter setleri ve kısaltmalar sağlar.
Kullanılan karakter setlerinin kısaltmaları aşağıdaki gibidir:
Kısaltma
Açıklama
.
Satır başı hariç herhangi bir karakter
\w
Alfanumerik karakterlerle eşleşir: [a-zA-Z0-9_]
\W
Alfanumerik olmayan karakterlerle eşleşir: [^\w]
\d
Rakamlarla eşlelir: [0-9]
\D
Rakam olmayan karakterlerle eşleşir: [^\d]
\s
Boşluk karakteri ile eşleşir: [\t\n\f\r\p{Z}]
\S
Boşluk karakteri olmayan karakterlerle eşleşir: [^\s]
4. Bakınmak
Bakınma sembolleri, bir ifade öncesinde veya sonrasında başka bir ifademiz olduğunda kullanılırlar.
Örneğin, $4.44 ve $10.88 girişlerinden $ karakteri önündeki tüm sayıları almak istiyoruz, bu durumda (?<=\$)[0-9\.]* ifadesini kullanırız.
(?<=\$)[0-9\.]* ifadesinin anlamı: . karakterini içeren ve $ karakteriyle devam eden tüm sayıları al demektir.
Düzenli ifadelerde kullanılan bakınma sembolleri aşadaki gibidir:
Sembol
Açıklama
?=
Positive Lookahead (Verdiğimiz ifade sonrası arar ve eşleşme varsa sonuç döndürür.)
?!
Negative Lookahead (Verdiğimiz ifade sonrası arar ve eşleşme yoksa sonuç döndürür.)
?<=
Positive Lookbehind (Verdiğimiz ifade öncesini arar ve eşleşme varsa sonuç döndürür.)
?<-!-
Negative Lookbehind Verdiğimiz ifade öncesini arar ve eşleşme yoksa sonuç döndürür.
4.1 Positive Lookahead
Positive Lookahead, ifadenin ilk bölümü bakınma ifadesiyle devam etmesi gerektiğini savunur. Bulunan eşleşme yalnızca ifadenin ilk bölümüyle eşleşen metin içerir. Olumlu bir bakınma tanımlamak için, içinde eşittir işareti yer alan parantezler (?=...) şeklinde kullanılır. Bakınma ifadesi parantezler içinde eşittir işaretinden sonra yazılır.
Örneğin, [T|t]he(?=\sfat) ifadesinin anlamı: opsiyonel küçük bir t ya da büyük T harfi, ardından h harfi gelir, ardından e harfi gelir. Parantez içinde ise bu dizilimin bir boşluk karakterinden sonra fat öbeğiyle devam edeceğini tanımlıyoruz.
1
"[T|t]he(?=\sfat)"=><ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>The</strong></a>fat cat sat on the mat.
Negative Lookahead sembolü positive lookahead tersine, verdiğimiz desenle devam etmemesi durumunda eşleşir. Bu sembol positive lookahead gibi tanımlanır ama = işareti yerine ! kullanılır.
[T|t]he(?!\sfat) ifadesinin anlamı: opsiyonel küçük bir t ya da büyük T harfi, ardından h harfi gelir, ardından eharfi gelir, ardından öncesinde boşluk olan bir fat öbeği olmamalıdır.
1
"[T|t]he(?!\sfat)"=>The fat cat sat on<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>the</strong></a>mat.
Positive Lookbehind, belirli bir desenden önceki eşleşmeleri almak için kullanılır. (?<=...) ile gösterilir.
Örneğin, (?<=[T|t]he\s)(fat|mat) ifadesinin anlamı: Öncesinde The veya the öbekleri olan tüm fat veya matöbeklerini getir.
1
"(?<=[T|t]he\s)(fat|mat)"=>The<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>fat</strong></a>cat sat on the<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>mat</strong></a>.
Negative Lookbehind, belirli bir desenden önce olmayan eşleşmeleri almak için kullanılır. (?<=!..) ile gösterilir.
Örneğin, (?<!(T|t)he\s)(cat) ifadesinin anlamı: Öncesinde The veya the öbekleri yer almayan tüm cat öbeklerini getir.
1
"(?<![T|t]he\s)(cat)"=>The cat sat on<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>cat</strong></a>.
İşaretler ayrıca düzenleyiciler olarak bilinirler, çünkü onlar bir düzenli ifadenin çıktısını düzenlerler. Bu işaretler herhangi bir sırada veya kombinasyonda kullanılabilirler, ve bunlar Düzenli İfadelerin ayrılmaz bir parçasıdırlar.
İşaret
Açıklama
i
Büyük küçük harf duyarlılık: Eşleştirmeleri küçük/büyük harfe karşı duyarsız yapar.
g
Genel Arama: Girilen harf öbeği boyunca bir desen arar.
m
Çok satırlı: Sabitleyici meta karakteri her satırda çalışır.
5.1 Büyük/Küçük harf duyarlılığı
i işaretleyicisi büyük/küçük harfe duyarsız eşleştirme yapmak için kullanılır.
Örneğin, /The/gi ifadesi: büyük T harfi, ardından küçük h harfi, ardından küçük e harfi gelir. ifadenin sonunda yer alan i işareti büyük-küçük harfe karşı duyarsız olması gerektiğini belirtir. Ayrıca g işaretinide kullandığımızı görebilirsiniz, tüm text içinde bu aramayı yapmak istediğimiz için g işaretini ayrıca belirtiyoruz.
1
"The"=><ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>The</strong></a>fat cat sat on the mat.
"/The/gi"=><ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>The</strong></a>fat cat sat on<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>the</strong></a>mat.
g işareti bir giriş içinde eşleşen tüm varsayonları bulmak için kullanılır. g işareti kullanılmazsa ilk eşleşme bulunduktan sonra arama sona erer.
1
"/.(at)/"=>The<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>fat</strong></a>cat sat on the mat.
m işareti çok satırlı bir eşleşme bulmak için kullanılır. Daha önce sabitleyicilerde gördüğümüz gibi (^, $) sembolleri aradığımız desenin harf öbeğinin başında veya sonunda olup olmadığını kontrol etmemiz için kullanılır. Bu sabitleyicilerin tüm satırlarda çalışması için m işaretini kullanırız.
Örneğin, /at(.)?$/gm ifadesinin anlamı: küçük a harfi, ardından küçük t harfi gelir, ardından opsiyonel olarak yeni satır hariç herhangi birşey gelebilir. m işaretini kullandığımız için bir girişin her satırının sonunda eşleştirir.
1
2
3
"/.at(.)?$/"=>The fat
cat sat
on the<ahref="https://github.com/ziishaned/learn-regex/blob/master/translations/README-tr.md#learn-regex"><strong>mat.</strong></a>
Regex,regexp nedir?
Düzenli İfade Nedir?
Bir düzenli ifade soldan sağa söz konusu harf öbekleriyle eşleşen bir desendir. “Regular expression” söylemesi zor bir tabir olduğundan dolayı, genellikle “regex” ya da “regexp” olarak kısaltılmış olarak bulacaksınız. Düzenli ifade bir harf öbeğinde ki bir metin değiştirmek, form doğrulamak, bir desen eşleşmesine dayalı harf öbeğinden bir alt harf öbeği ayıklamak ve çok daha fazlası için kullanılır.
Bir uygulama yazdığınızı hayal edin ve bir kullanıcı adını seçtiğinde, bu kullanıcı adı için kurallar belirlemek istiyorsunuz. Kullanıcı adının harfler, sayılar, altçizgiler ve tireler içermesine izin vermek, ayrıca, kullanıcı adındaki karakter sayısını sınırlamak istiyorsunuz, böylece çirkin görünmeyecek. Böyle durumlarda kullanıcı adını doğrulamak için aşağıdaki düzenli ifadeyi kullanıyoruz:
Yukardaki düzenli ifade
john_doe
,jo-hn_doe
vejohn12_as
gibi girişleri kabul edebilir.Jo
girişi uyuşmaz, çünkü harf öbeği büyük harf içeriyor ve aynı zamanda uzunluğu 3 karakterden az.İçindekiler
1. Temel Eşleştiriciler
Bir düzenli ifade bir metin içinde arama yapabilmek için kullandığımız bir karakter desenidir. Örneğin,
the
düzenli ifadesi şu anlama gelir:t
harfi ardındanh
, ardındane
harfi gelir.Düzenli ifadeyi test edin
123
düzenli ifadesi123
harf öbeğiyle eşleşir. Düzenli ifade birbiri ardına, girilen harf öbeğindeki her karakter düzenli ifadenin içindeki her karakterle karşılaştırılarak eşleştirilir. Düzenli ifadeler normal olarak büyük/küçük harfe duyarlıdırlar, yaniThe
düzenli ifadesithe
harf öbeğiyle eşleşmez.Düzenli ifadeyi test edin
2. Meta Karakterler
Meta karakterler düzenli ifadelerin yapı taşlarıdırlar. Meta karakterler kendileri için değil bunun yerine bazı özel yollarla yorumlanırlar. Bazı meta karakterler özel anlamları vardır ve bunlar köşeli parantez içinde yazılırlar.
Meta karakterler aşağıdaki gibidir:
^
işaretinden sonra girilen karakterler haricindeki karakterlerle eşleşir.n
en fazlam
değeri kadar olmasını ifade eder.xyz
karakterleriyle eşleşir.[ ] ( ) { } . * + ? ^ $ \ |
özel karakterin aranmasını sağlar.2.1 Nokta
Nokta
.
meta karakterlerin en basit örneğidir..
meta karakteri satır başlangıcı hariç herhangi bir karakterle eşleşir. Örneğin,.ar
düzenli ifadesinin anlamı: herhangi bir karakterin ardındana
harfi ver
harfi gelir.Düzenli ifadeyi test edin
2.2 Karakter Takımı
Karakter takımları aryıca Karakter sınıfı olarak bilinir. Karakter takımlarını belirtmek için köşeli ayraçlar kullanılır. Karakterin aralığını belirtmek için bir karakter takımında tire kullanın. Köşeli parantezlerdeki karakter aralığının sıralaması önemli değildir.
Örneğin,
[Tt]he
düzenli ifadesinin anlamı: bir büyükT
veya küçükt
harflerinin ardından sırasıylah
vee
harfi gelir.Düzenli ifadeyi test edin
Bununla birlikte, bir karakter takımı içerisindeki bir periyot bir tam periyot demektir.
ar[.]
düzenli ifadesinin anlamı: Küçüka
karakteri ardındanr
harfi gelir, ardından bir.
karakteri gelir.Düzenli ifadeyi test edin
2.2.1 Negatiflenmiş karakter seti
Genellikle, şapka
^
sembolü harf öbeğinin başlangıcını temsil eder, ama köşeli parantez içinde kullanıldığında verilen karakter takımını hariç tutar.Örneğin,
[^c]ar
ifadesinin anlamı:c
harfinden hariç herhangi bir harfin ardındana
, ardındanr
gelir.Düzenli ifadeyi test edin
2.3 Tekrarlar
+
,*
ya da?
meta karakterlerinden sonra bir alt desenin kaç defa tekrar edebileceğini belirtmek için kullanılır. Bu meta karakterler farklı durumlarda farklı davranırlar.2.3.1 Yıldız İşareti
*
sembolü, kendinden önce girilen eşlemenin sıfır veya daha fazla tekrarıyla eşleşir. Ama bir karakter seti ya da sınıf sonrasına girildiğinde, tüm karakter setinin tekrarlarını bulur.a*
düzenli ifadesinin anlamı:a
karakterinin sıfır veya daha fazla tekrarları,[a-z]*
düzenli ifadesinin anlamı ise bir satırdaki herhangi bir sayıdaki küçük harfler anlamına gelir.Düzenli ifadeyi test edin
*
sembolü.
meta karakteri ile.*
karakterinin herhangi harf öbeğine eşleştirmek için kullanılabilir.*
sembolü boşluk karakteriyle\s
bir harf öbeğinde boşluk karakterlerini eşleştirmek için kullanılabilir.Örneğin,
\s*cat\s*
düzenli ifadesinin anlamı: sıfır veya daha fazla boşluk ardından küçükc
karakteri gelir, ardından küçüka
karakteri gelir, ardından küçükt
karakteri gelir, ardından sıfır veya daha fazla boşluk gelir.Düzenli ifadeyi test edin
2.3.2 Artı İşareti
+
sembolü, kendinden önce girilen eşlemenin bir veya daha fazla tekrarıyla eşleşir.Örneğin,
c.+t
ifadesinin anlamı: küçükc
harfi, ardından en az bir karakter gelir, ardından küçükt
karakteri gelir. Örnekte açıklamak gereken önemli nokta:t
harfi cümledeki sont
harfi olacaktır.c
vet
harfi arasında en az bir karakter vardır.Düzenli ifadeyi test edin
2.3.3 Soru İşareti
Düzenli ifadelerde
?
meta karakterinden önce girilen karakteri opsiyonel olarak tanımlar. Bu sembol önce gelen karakterin sıfır veya bir örbeğiyle eşleşir.Örneğin,
[T]?he
ifadesinin anlamı: opsiyonel büyükT
harfi, ardından küçükh
karakteri gelir, ardından küçüke
karakteri gelir.Düzenli ifadeyi test edin
Düzenli ifadeyi test edin
2.4 Süslü Parantez
Düzenli ifadelerde miktar belirliyiciler olarakda bilinen süslü parantezler, bir karakterin veya karakter grubunun kaç defa tekrar edebileceğini belirtmek için kullanılırlar.
Örneğin,
[0-9]{2,3}
ifadesinin anlamı: 0 ile 0 aralığındaki karakterlerden, en az 2 en fazla 3 defa ile eşleş.Düzenli ifadeyi test edin
İkinci numarayı boş bırakabiliriz.
Örneğin,
[0-9]{2,}
ifadesinin anlamı: En az 2 veya daha fazla defa eşleş. Düzenli ifadeden virgülü kaldırırsak[0-9]{3}
: doğrudan 3 defa eşleşir.Düzenli ifadeyi test edin
Düzenli ifadeyi test edin
2.5 Karakter Grubu
Karakter grubu parantezler içine yazılmış alt desenler grubudur. Daha önce tasarım deseninde değindiğimiz gibi, bir karakterden önce bir miktar belirleyici koyarsak önceki karakteri tekrar eder. Fakat miktar belirleyiciyi bir karakter grubundan sonra koyarsak tüm karakter grubunu tekrarlar.
Örneğin:
(ab)*
düzenli ifadesi “ab” karakterinin sıfır veya daha fazla tekrarıyla eşleşir.Ayrıca karakter grubu içinde
|
meta karakterini kullanabiliriz.Örneğin,
(c|g|p)ar
düzenli ifadesinin anlamı: küçükc
,g
veyap
karakteri, ardındana
karakteri, ardındanr
karakteri gelir.Düzenli ifadeyi test edin
2.6 Değişim
Düzenli ifadede dik çizgi alternasyon(değişim, dönüşüm) tanımlamak için kullanılır. Alternasyon birden fazla ifade arasındaki bir koşul gibidir. Şu an, karakter grubu ve alternasyonun aynı şekilde çalıştığını düşünüyor olabilirsiniz. Ama, Karakter grubu ve alternasyon arasındaki büyük fark karakter grubu karakter düzeyinde çalışır ama alternasyon ifade düzeyinde çalışır.
Örneğin,
(T|t)he|car
düzenli ifadesinin anlamı: BüyükT
ya da küçükt
karakteri, ardından küçükh
karakteri, ardından küçüke
ya dac
karakteri, ardından küçüka
, ardından küçükr
karakteri gelir.Düzenli ifadeyi test edin
2.7 Özel Karakter Hariç Tutma
\
işareti sonraki karakteri hariç tutmak için kullanılır. Bu bir semboülü ayrılmış karakterlerde{ } [ ] / \ + * . $ ^ | ?
dahil olmak üzere eşleşen bir karakter olarak belirtmemizi sağlar. Bir özel karakteri eşleşen bir karakter olarak kullanmak için önüne\
işareti getirin.Örneğin,
.
düzenli ifadesi yeni satır hariç herhangi bir karakteri eşleştirmek için kullanılır. Bir harf öbeği içinde nokta.
karakterini yakalamak için.
ayrılmış karakterini hariç tutmamız gerekir. Bunun için nokta önüne\
işaretini koymamız gereklidir.(f|c|m)at\.?
düzenli ifadesinin anlamı: küçükf
,c
ya dam
harfi, ardından küçüka
harfi, ardından küçükt
harfi, ardından opsiyonel.
karakteri gelir.Düzenli ifadeyi test edin
2.8 Sabitleyiciler
Düzenli ifadelerde, eşleşen sembolün girilen harf öbeğinin başlangıç sembolü veya bitiş sembolü olup olmadığını kontrol etmek için sabitleyicileri kullanırız. Sabitleyiciler iki çeşittir: İlk çeşit, eşleşen karakterin girişin ilk karakteri olup olmadığını kontrol eden şapka
^
karakteri, ikinci çeşit ise eşleşen karakterin girişin son karakteri olup olmadığını kontrol eden dolar$
karakteridir.2.8.1 Şapka İşareti
Şapka
^
işareti eşleşen karakterin giriş harf öbeğinin ilk karakteri olup olmadığını kontrol etmek için kullanılır. Eğer^a
düzenli ifadesiniabc
harf öbeğine uygularsaka
ile eşleşir. Ama^b
ifadesini uygularsak bir eşleşme bulamayız. Bunun nedeniabc
harf öbeğindeb
karakterinin başlangıç karakteri olmamasıdır.Bir başka örnek üzerinden ilerlersek,
^(T|t)he
düzenli ifadesinin anlamı: büyükT
ya dat
karakteri giriş harf öbeğinin ilk karakteri olmak üzere, ardından küçükh
, ardından küçüke
karakteri gelir.Düzenli ifadeyi test edin
Düzenli ifadeyi test edin
2.8.2 Dolar İşareti
Dolar
$
işareti eşleşen karakterin giriş harf öbeğinin son karakteri olup olmadığını kontrol etmek için kullanılır.Örneğin,
(at\.)$
ifadesinin anlamı: küçük bira
karakteri, ardından küçük birt
karakteri, ardıdan nokta.
karakteri gelir ve bu eşleşme harf öbeğinin sonunda olmalıdır.Düzenli ifadeyi test edin
Düzenli ifadeyi test edin
3. Kısaltma Karakter Takımları
Regex, sık olarak kullanılan düzenli ifadeler için özel karakter setleri ve kısaltmalar sağlar.
Kullanılan karakter setlerinin kısaltmaları aşağıdaki gibidir:
[a-zA-Z0-9_]
[^\w]
[0-9]
[^\d]
[\t\n\f\r\p{Z}]
[^\s]
4. Bakınmak
Bakınma sembolleri, bir ifade öncesinde veya sonrasında başka bir ifademiz olduğunda kullanılırlar.
Örneğin,
$4.44 ve $10.88
girişlerinden$
karakteri önündeki tüm sayıları almak istiyoruz, bu durumda(?<=\$)[0-9\.]*
ifadesini kullanırız.(?<=\$)[0-9\.]*
ifadesinin anlamı:.
karakterini içeren ve$
karakteriyle devam eden tüm sayıları al demektir.Düzenli ifadelerde kullanılan bakınma sembolleri aşadaki gibidir:
eşleşme varsa
sonuç döndürür.)eşleşme yoksa
sonuç döndürür.)eşleşme varsa
sonuç döndürür.)eşleşme yoksa
sonuç döndürür.4.1 Positive Lookahead
Positive Lookahead, ifadenin ilk bölümü bakınma ifadesiyle devam etmesi gerektiğini savunur. Bulunan eşleşme yalnızca ifadenin ilk bölümüyle eşleşen metin içerir. Olumlu bir bakınma tanımlamak için, içinde eşittir işareti yer alan parantezler
(?=...)
şeklinde kullanılır. Bakınma ifadesi parantezler içinde eşittir işaretinden sonra yazılır.Örneğin,
[T|t]he(?=\sfat)
ifadesinin anlamı: opsiyonel küçük birt
ya da büyükT
harfi, ardındanh
harfi gelir, ardındane
harfi gelir. Parantez içinde ise bu dizilimin bir boşluk karakterinden sonrafat
öbeğiyle devam edeceğini tanımlıyoruz.Düzenli ifadeyi test edin
4.2 Negative Lookahead
Negative Lookahead sembolü positive lookahead tersine, verdiğimiz desenle devam etmemesi durumunda eşleşir. Bu sembol positive lookahead gibi tanımlanır ama
=
işareti yerine!
kullanılır.[T|t]he(?!\sfat)
ifadesinin anlamı: opsiyonel küçük birt
ya da büyükT
harfi, ardındanh
harfi gelir, ardındane
harfi gelir, ardından öncesinde boşluk olan birfat
öbeği olmamalıdır.Düzenli ifadeyi test edin
4.3 Positive Lookbehind
Positive Lookbehind, belirli bir desenden önceki eşleşmeleri almak için kullanılır.
(?<=...)
ile gösterilir.Örneğin,
(?<=[T|t]he\s)(fat|mat)
ifadesinin anlamı: ÖncesindeThe
veyathe
öbekleri olan tümfat
veyamat
öbeklerini getir.Düzenli ifadeyi test edin
4.4 Negative Lookbehind
Negative Lookbehind, belirli bir desenden önce olmayan eşleşmeleri almak için kullanılır.
(?<=!..)
ile gösterilir.Örneğin,
(?<!(T|t)he\s)(cat)
ifadesinin anlamı: ÖncesindeThe
veyathe
öbekleri yer almayan tümcat
öbeklerini getir.Düzenli ifadeyi test edin
5. İşaretler
İşaretler ayrıca düzenleyiciler olarak bilinirler, çünkü onlar bir düzenli ifadenin çıktısını düzenlerler. Bu işaretler herhangi bir sırada veya kombinasyonda kullanılabilirler, ve bunlar Düzenli İfadelerin ayrılmaz bir parçasıdırlar.
5.1 Büyük/Küçük harf duyarlılığı
i
işaretleyicisi büyük/küçük harfe duyarsız eşleştirme yapmak için kullanılır.Örneğin,
/The/gi
ifadesi: büyükT
harfi, ardından küçükh
harfi, ardından küçüke
harfi gelir. ifadenin sonunda yer alani
işareti büyük-küçük harfe karşı duyarsız olması gerektiğini belirtir. Ayrıcag
işaretinide kullandığımızı görebilirsiniz, tüm text içinde bu aramayı yapmak istediğimiz içing
işaretini ayrıca belirtiyoruz.Düzenli ifadeyi test edin
Düzenli ifadeyi test edin
5.2 Genel Arama
g
işareti bir giriş içinde eşleşen tüm varsayonları bulmak için kullanılır.g
işareti kullanılmazsa ilk eşleşme bulunduktan sonra arama sona erer.Test the regular expression
Düzenli ifadeyi test edin
5.3 Çok Satırlı
m
işareti çok satırlı bir eşleşme bulmak için kullanılır. Daha önce sabitleyicilerde gördüğümüz gibi(^, $)
sembolleri aradığımız desenin harf öbeğinin başında veya sonunda olup olmadığını kontrol etmemiz için kullanılır. Bu sabitleyicilerin tüm satırlarda çalışması içinm
işaretini kullanırız.Örneğin,
/at(.)?$/gm
ifadesinin anlamı: küçüka
harfi, ardından küçükt
harfi gelir, ardından opsiyonel olarak yeni satır hariç herhangi birşey gelebilir.m
işaretini kullandığımız için bir girişin her satırının sonunda eşleştirir.Düzenli ifadeyi test edin
Düzenli ifadeyi test edin
Next ArticlePHP Halk Bankası Hesap Hareketleri