Regex (Regular Expressions) Nedir?

Regular-Expression, bir arama modelini tanımlamak için kullanılan özel bir metin dizesidir. 1940’larda normal dilleri tanımlamanın bir yolu olarak ortaya çıkmaya başladı, ancak 1970’lerde gerçekten programlama dünyasında ortaya çıkmaya başladılar. Şu anda modern programlama dillerinin neredeyse tamamında yer bulan, aynı söz dizimine (syntax) sahip olan, genellikle harflerden olusan karakterler dizisinin (katar / string) belirtilen kurallar çerçevesinde kısa yoldan ve esnek bir biçimde belirlenmesini sağlayan bir yapıdır.

Asterisk’te regex’i genellikle dial pattern oluştururken kullanırız. Mesela şirketimizin satış departmenı ürünleri pazarlamak için uluslarası aramalar yapıyorlar. Bunun için bir dial plan yapıcaz ama aşağıdaki resimdeki extension’da olduğu gibi tek yapamayıx. Mesela 100 extension arandığı zaman Mahtias ara vs diye tek tek giremeyiz. Bunun için regex kullanacağız.

exten => _XXXX,1Goto(outgoing,888,1)

Yukarıdaki “_” ile asterisk’e her burada bir regex kullanacağım ona göre diyorsanız. Daha sonra gelen X anlamı ise 0’dan 9’a kadar herhangi bir numara anlamına geliyor. Yani XXXX 1941 de olabilir 0357 de olabilir.
exten => _X.,1Goto(outgoing,888,1)
ifadesindeki “.” ise X sayıs kadar digit ifade ediyor. Yani XXXX digit 4 digit ise X. digit 3 digitte olabilir 33 digitte “.” bu işe yarıyor.
exten => _0X.,1Goto(outgoing,888,1)
yukarıdaki örnekte ise 0 ile başlayıp 0-9 arasında herhangi bir rakam herhangi bir digit numara olabilir demek.

Örnekleri çoğaltabiliriz. N kullanılıyor mesela amerikada N ise 2-9 arasındaki arasındaki bir rakam anlamına gelir.

Regex’in bu anlama geldiğini ve asteriskte bu şekilde kullanıldığın bilmeniz şimdili yeterlidir. Ilerde farklı kurallar fakrlı arama planlarıyla regexler oluşturarak iyice anlayabilirsiniz.


Leave A Comment