Bir düzenli ifade (regexp veya şablon) bir matematiksel dizge kümesini açıklayan bir metin dizgesidir. s dizgesi, r düzenli ifadesi tarafından açıklanan bir dizge kümesi ise r düzenli ifadesi s dizgesi ile eşleşir.
Regex kütüphanesini kullanarak yapabilecekleriniz:
-
Bir dizge belirtilen bir şablona tamamen uyarsa bunu görürsünüz.
-
Bir dizge içinde belirtilen bir şablon ile uyuşan bir altdizgeyi arayabilirsiniz.
Bazı düzenli ifadeler sadece bir dizge ile eşleşir, yani bir kümenin içinde eşleşen yalnız bir üye vardır. Örneğin foo düzenli ifadesi sadece foo dizgesi ile eşleşir, başka bir şeyle eşleşmez.
Bazıları da bir dizgeden fazlası ile eşleşir, yani bir kümenin içinde eşleşen birden fazla üye vardır. Örneğin f* düzenli ifadesi sıfır veya daha fazla sayıda flerden oluşan birden fazla dizge ile eşleşebilir.
Sizin de gördüğünüz gibi, düzenli ifadeler içindeki bazı karakterler kendileri ile (f gibi) eşleşirken, bazıları da (* gibi)
kendileriyle eşleşmek yerine çok sayıda farklı dizgeyi açıklayan bir kalıp olarak belirtilir.
Bir düzenli ifadeyi Regex kütüphane işlevlerinde eşleşmeleri bulmak ya da arama yapmak amacıyla kullanmadan önce bir Regex şablonu derleme işlevi ile derlemelisiniz. Bir derlenmiş şablon kütüphane işlevleri tarafından kullanılabilir duruma getirilmiş bir düzenli ifadedir. Bir şablonu bir kere derledikten sonra eşleşmeleri bulmak ya da arama yapmak için defalarca kullanabilirsiniz.
Regex kütüphanesi iki kaynak dosyasından oluşur:
regex.h ve
regex.c.
Regex, düzenli ifadeler üzerinde işlem yapabileceğiniz üç ayrı işlev grubuna sahiptir.
Gruplardan biri olan GNU grubu işlevler en güçlü olanlardır ama diğerleri ile, POSIX ve Berkeley Unix grupları ile tam uyumlu değildir; arayüzü özellikle GNU için tasarlanmıştır. Diğer iki grup işlev, POSIX ve Berkeley UNIX düzenli ifade işlevlerinin arayüzleri ile benzer arayüzleri kullanırlar.
Bu kısmı düzenli ifade kullanan Emacs türü uygulamaların kullanıcılarını değil, yazılımcıları düşünerek yazdık. Regex kütüphanelerini tamamı ile tanımladık. Burada bir uygulamanın anlayacağı şekilde düzenli ifadelerin nasıl yazılacağını değil, bir bütünlük içinde Regex kütüphanesini anlattık.