Sözdizimi Bitleri
Önceki Düzenli İfade Sözdizimi Sonraki
Sözdizimi Bitleri
Herhangi bir düzenli ifade sözdiziminde bazı karakterler daima özeldir; bazıları bazen özeldir ve diğerleri ise asla özel karakter olmazlar. Verilen bir düzenli ifadenin sözdiziminin Regex tarafından tanınması bu düzenli ifadenin şablon tamponunun syntax alanındaki değere bağımlıdır.
Bir düzenli ifadeyi derleyerek bir şablon tamponu için bellekte yer ayırabilirsiniz. Şablon tamponlar için daha ayrıntılı bilgiyi GNU Şablon Tamponları ve POSIX Şablon Tamponları bölümlerinde bulabilirsiniz. Derleme hakkında daha ayrıntılı bilgiyi ise GNU Düzenli İfadesinin Derlenmesi, POSIX Düzenli İfadelerinin Derlenmesi ve BSD Düzenli İfadelerinin Derlenmesi konuları altında bulabilirsiniz.
Regex, syntax alanının değerinin bitlerden oluştuğunu varsayar; bu bitlere sözdizimi bitleri denir. Pek çok durumda, hangi karakterin hangi işleçi temsil ettiği konusunda etkilidirler. Bahsi geçen işleçlerin anlamlarını Ortak İşleçler, GNU İşleçleri ve GNU Emacs İşleçleri konularında tanımladık.
Bir başvuru kaynağı olması için, aşağıda bütün sözdizimi bitlerinin tam bir listesini alfabetik bir sırada bulabilirsiniz:
RE_BACKSLASH_ESCAPE_IN_LISTS
Bu bit birse, bir liste içindeki \ kendinden sonra gelen karakteri önceler (karakter bir özel karakterse onu sıradan bir karakter yapar); sıfırsa, \ listelerin içinde sıradan bir karakter olarak ele alınır. (\ karakterinin listeler dışında ne yaptığı Tersbölü Karakteri bölümünde anlatılmıştır.)
RE_BK_PLUS_QM
Bu bit birse, \+ bir veya daha fazlası ile eşleşme işleci, \? ise sıfır veya daha fazlası ile eşleşme işlecini temsil eder. Bu bit sıfırsa, + bir veya daha fazlası ile eşleşme işleci, ? ise sıfır veya daha fazlası ile eşleşme işlecini temsil eder. RE_LIMITED_OPS biti bir ise bu bit anlamsız olur.
RE_CHAR_CLASSES
Bu bit birse, listelerde karakter sınıflarını kullanabilirsiniz, sıfırsa kullanamazsınız.
RE_CONTEXT_INDEP_ANCHORS
Bu bit birse, ^ ve $ liste dışında her yerde özeldir. Bu bit sıfırsa, bu karakterler sadece bir liste içinde özeldir. Satır başı ile eşleşme işleci ve Satır sonu ile eşleşme işleci bölümlerine bakınız.
RE_CONTEXT_INDEP_OPS
Bu bit birse, bazı karakterler liste dışında her yerde özeldir. Bu bit sıfırsa, bu karakterler bazı genel durumlarda özel ve diğer heryerde sıradandırlar. Özellikle, bu bit sıfırsa * ve RE_LIMITED_OPS sözdizimi biti sıfırsa + ve ? (veya RE_BK_PLUS_QM sözdizimi bitine bağlı olarak \+ ve \?) düzenli ifade içinde ilk değillerse ya da bir VEYA işleci ya da grup başlatma işlecinin hemen ardından gelmiyorlarsa yineleme işleçlerini temsil ederler. RE_INTERVALS birlenmişse ve geçerli bir aralığının başlangıcı ise { (veya RE_NO_BK_BRACES bitine bağlı olarak \{) içinde aynı durum geçerlidir.
RE_CONTEXT_INVALID_OPS
Bu bit birse, yineleme ve VEYA işleçleri bir düzenli ifade içinde belirli konumlarda bulunamazlar. Özellikle, aşağıdaki durumlarda düzenli ifade geçersizdir:
  • Bir yineleme işleçi düzenli ifade içinde ilk ise veya satır başı eşleştirme, grup başlatma ya da VEYA işleçlerinden hemen sonra geliyor ise.
  • Bir VEYA işleçi düzenli ifade içinde ilk veya son ise, satır sonu eşleştirme işleçinden hemen önce ya da grup başlatma işleçi ya da bir VEYA işlecinden hemen sonra geliyorsa.
Bu bit sıfırsa, yineleme ve veya karakterlerini temsil eden karakterleri düzenli ifade içinde her hangi bir yere koyabilirsiniz. Gerçekte, belirli konumlardaki işleçler olup olmamaları diğer sözdizimi bitlerine dayanır.
RE_DOT_NEWLINE
Bu bit birse, herhangi bir karakter ile eşleştirme işleçi satırsonu karakteri ile eşleşir; sıfırsa bunu yapmaz.
RE_DOT_NOT_NULL
Bu bit birse, herhangi bir karakterle eşleşme işleçi boş karakterle eşleşmez. Sıfırsa eşleşir.
RE_INTERVALS
Bu bit birse, Regex aralık işleçlerini tanır; değilse tanımaz.
RE_LIMITED_OPS
Bu bit birse, bir ya da daha fazlası ile eşleştirme, sıfır ya da biri ile eşleştirme ya da VEYA işleçleri Regex tarafından tanınmaz; değilse tanınır.
RE_NEWLINE_ALT
Bu bit birse, satırsonu karakteri VEYA işleçini temsil eder, değilse satırsonu karakteri sıradan karakterlerden biri olur.
RE_NO_BK_BRACES
Bu bit birse, { aralık başlatma işlecini, } aralık kapatma işleçini temsil eder; değilse, \{ aralık başlatma işlecini, \} aralık kapatma işleçini temsil eder. Sadece RE_INTERVALS biti bir ise bu bit anlamlıdır.
RE_NO_BK_PARENS
Bu bit birse, ( grup başlatma işlecini, ) grup kapatma işlecini temsil eder; sıfırsa, \( grup başlatma işlecini, \) grup kapatma işlecini temsil eder.
RE_NO_BK_REFS
Bu bit birse, \rakam adresleme işleçi olarak tanınmaz; sıfırsa tanınır.
RE_NO_BK_VBAR
Bu bit birse, | VEYA işlecini temsil eder; sıfırsa \| VEYA işlecini temsil eder. RE_LIMITED_OPS biti birse bu bit anlamsızdır.
RE_NO_EMPTY_RANGES
Bu bit birse, içinde bitiş noktası başlangıç noktasından daha küçük olan bir aralık bulunan düzenli ifade geçersizdir; sıfırsa, boş bir aralık olarak kabul edilir.
RE_UNMATCHED_RIGHT_PAREN_ORD
Bu bit birse ve düzenli ifade grup başlatma işleçine sahip değilse, Regex, )'in (RE_NO_BK_PARENS bitinin durumuna göre) grup kapatma işleci olduğunu var sayacaktır.
Önceki Üst Ana Başlık Sonraki
Düzenli İfade Sözdizimi Başlangıç Öntanımlı Sözdizimleri
Bir Linux Kitaplığı Sayfası