Regular Expression (Düzenli İfadeler)
Otomasyon süreçlerinin olmazsa olmazı düzenli ifadeler için yazılımcının en büyük yardımcılarından birisidir desem sanırım itiraz edecek olmaz. Başlangıçta öğrenmesi karmaşık gibi görünse de desen oluşturma konusunu bir kez anladığınızda vazgeçilmeziniz oluyor.
Bu makalemde ilk başta bir düzenli ifade yazarken kullanacağınız desenleri oluşturmanızı sağlayacak karakterleri anlatacağım. Şimdiki planım daha sonra programlama dilleri için ayrı ayrı düzenli ifadelerin kullanım şekillerini, fonksiyon ve metotlara detaylıca değindiğim ayrı makaleler yazmak.
Başlamadan önce düzenli ifadelerin büyük/küçük harf duyarlı olduğunu bilmelisiniz.
[] ve -
Köşeli parantezler arasında yazılan karakterleri arar.
- işareti/sembolü aralık belirtmek için kullanılır.
[abc] =>
a : 1 eşleşme
ab : 2 eşleşme
hello : Eşleşme yok
[a-c] => [abc]
[a-f] => [abcdef]
[a-dl-o] => [abcdlmno]
[1-6] => [123456]
[a-fk] => [abcdefk]
[1-68] => [1234568]
^ (Klavye : Shift + 3)
Bu karakterin düzenli ifadelerde 2 farklı kullanımı vardır;
Köşeli parantez içinde ([]) belirli karakterleri dışlamak için kullanılır.
[^abc] => abc dışındaki karakterler
[^a-d] => abcd dışındaki karakterler
[^0-9] => rakam olmayan karakterler
Başlangıç karakterini belirtmek için kullanılır.
^e => e : 1 eşleşme
eba : 1 eşleşme
sel : Eşleşme yok
^el => e : Eşleşme yok
ela : 1 eşleşme
.
Nokta her hangi bir karakteri ifade eder.
.. => a : Eşleşme yok
ab : 1 Eşleşme
abc : 1 Eşleşme
abcd : 2 Eşleşme
$
Son karakteri ifade eder.
e$ => e : 1 eşleşme
abe : 1 eşleşme
sel : Eşleşme yok
el$ => e : Eşleşme yok
el : 1 eşleşme
sel : 1 eşleşme
*
Kendisinden önceki karakterin olmaması ya da bir veya birden fazla kez tekrarlanmasını kontrol eder.
hel*o => heo : 1 eşleşme
helo : 1 eşleşme
helllo : 1 eşleşme
helio : Eşleşme yok
heio : Eşleşme yok
+
Bir karakterin en az bir defa olması gerektiği ifade edilir. Kendisinden önceki karakter bir veya daha fazla kez tekrarlanmasını kontrol eder.
hel+o => heo : Eşleşme yok
helo : 1 eşleşme
helllo : 1 eşleşme
?
Bir karakterin olmaması yada sadece bir kez olmasını kontrol eder.
hel?o => heo : 1 eşleşme
helo : 1 eşleşme
hello : Eşleşme yok
{}
Karakter sayısını kontrol eder.
al{2} = a karakterinden sonra l karakteri 2 kez tekrarlanmalıdır.
al{2} => al : Eşleşme yok
all : 1 eşleşme
al{2,3} = a karakteri arkasına l karakteri en az 2, en fazla 3 kez bulunmalıdır.
al{2,3} => al : Eşleşme yok
all : 1 eşleşme
alll : 1 eşleşme
allll : Eşleşme yok
[0-9]{2,4} => en az 2 en fazla 4 basamaklı bir sayı
=> 8 : Eşleşme yok
=> 12 : 1 eşleşme
=> 684 : 1 eşleşme
=> 5864 : 1 eşleşme
|
Alternatif belirtmek için kullanılır. Alternatiflerden birinin gerçekleşmesi gerekir.
a|b = "a" ya da "b"
=> cde : Eşleşme yok
=> ade : 1 eşleşme
=> acdbea : 3 eşleşme
()
Gruplama yapmak için kullanılır.
(a|b|c)yz = "a", "b", "c" karakterlerinden her hangi birinin ardından "yz" gelmelidir.
=> ayz : 1 eşleşme
=> byz : 1 eşleşme
=> cyz : 1 eşleşme
=> dyz : Eşleşme yok
=> axz : Eşleşme yok
\
Kendisinden sonra gelen $, * gibi özel regex karakterlerinin bir karakter olarak algılanması için kullanılır.
a\$ = metin içerisinde "a$" ifadesini bir metin olarak sorgular.
\A
Kendisinden sonra gelen karakter ya da karakter dizesini, metin başında sorgular.
\Athe = dize (string) "the" ile mi başladı?
\Z
Kendisinden önce gelen karakter ya da karakter dizesini, metnin sonunda sorgular.
the\Z = dize (string) "the" ile mi bitiyor?
\b
Bir karakter ya da karakter dizesini kelimelerin en başında ya da en sonunda sorgular. \A ve \Z den farkı bu işlemi kelime bazlı yapmasıdır.
\bthe = kelime "the" ile mi başlıyor?
the\b = kelime "the" ile mi bitiyor?
\B
Bir karakter ya da karakter dizesinin kelimenin en başında ya da en sonunda olmaması durumunu sorgular. \b'nin değili olarak düşünülebilir.
\Bthe = kelime "the" ile başlamamıyor mu?
the\B = kelime "the" ile bitmiyor mu?
\d
[0-9] deseni ile aynı anlama gelir. Dize içerisindeki rakamları ifade etmekte kullanılır.
\D
[^0-9] deseni ile aynı anlama gelir. Dize içerisindeki rakam olmayan karakterleri ifade etmekte kullanılır.
\s
Boşluk (space) karakterleri ifade etmek için kullanılır.
\S
Boşluk dışındaki karakterleri ifade etmek için kullanılır.
\w
Alfabetik karakterler, rakamlar ve alt çizgi (_) karakterini temsil eder.
\W
Alfabetik karakter, rakam ya da alt çizgi (_) dışındaki karakterleri ifade eder.
Umarım işinize yarar.
Yazar
Muhammet Şafak
Yazılım Mühendisi & Full-Stack Geliştirici. PHP, Laravel ve modern web teknolojileri üzerine yazıyor.
HakkımdaYorumlar 0
Henüz yorum yapılmamış.
İlk yorumu siz yapın!
Yorum Yaz
Yorumunuz moderasyon sonrası yayınlanacaktır.