Grup Adresleme İşleci
Önceki Ortak İşleçler Sonraki
Grup Adresleme İşleci
Şayet, RE_NO_BK_REF sözdizimi biti bir ise, Regex adreslemeleri tanır. Bir adres, evvelce belirtilmiş bir grup ile eşleştirilir. Grup adresleme işleci, bir düzenli ifadenin rakam'ıncı grubundan sonra herhangi bir yere yerleştirilmiş bir \rakam ile temsil edilir.
rakam, 1'den 9'a kadar bir rakam olmalıdır. Eşleştirici, saptadığı ilk 9 gruba bu numaraları atar. \1'den \9'a kadar herhangi bir işleci, kendisine karşı düşen grubun grup sonlandırma işlecinden sonra kullanarak, grubun eşleştiği alt dizge ile işleşen bir grup gibi kullanılabilir. Yani bir grubu tekrar tekrar yazmak yerine sadece grup adresleme işlecini kullanmak yeterli olur.
Grup adresleme işleçleri aşağıdaki kurallara göre eşleşirler (aşağıdaki örneklerde ( karakteri grup başlatma işleci, ) karakteri grup sonlandırma işleci, { karakteri sınırlı sayıda yineleme başlatma işleci ve } karakteri sınırlı sayıda yineleme sonlandırma işleci olarak kullanılmıştır.):
  • Şayet grup bir alt dizge ile eşleşiyorsa, adres benzer bir alt dizge ile eşleşir. Örneğin; (a)\1 ifadesi aa ile eşleşirken (bana)na\1bo\1 ifadesi bananabanabobana ile eşleşir. Aynı şekilde, (.*)\1 ifadesi (RE_DOT_NEWLINE sözdizimi biti sıfır ise satırsonu karakteri ile eşleşmez) herhangi bir iki aynı parçadan oluşan dizge ile eşleşir; (.*) dizgenin ilk bölümü ile \1 ise ikinci bölümü ile eşleşir.
  • Şayet grup defalarca eşleştiriliyorsa (arkasında bir yineleme işleçi olabilir), adres grupla en son eşleşen alt dizge ile eşleşir. Örneğin; ((a*)b)*\1\2 ifadesi aabababa ile eşleşir; ilk grup 1 (dıştaki olan), aab ile ve grup 2 (içteki), aa ile eşleşir. Daha sonra grup 1 ab ile ve grup 2 a ile eşleştirilir. Böylece, \1 parçası ab ile ve \2 parçası a ile eşleşmiş olur.
  • Şayet grup bir eşleşmeye katılmıyorsa, Örneğin: eşleşmeyen bir VEYA işlecinin bir parçası veya sıfır kere yineleme yapan bir yineleme işleçinin bir parçası olabilir, bu durumda adres bütün eşleşmelerde başarısız olur. Örneğin, (one()|two())-and-(three\2|four\3) ifadesi one-and-three ve two-and-four ile eşleşir, fakat asla one-and-four veya two-and-three ile eşleşmez. Örneğin ifade, one-and- ile eşleşirse 2. grup boş dizge ile eşleşirken 3. grup eşleşmeye konu olmaz. Bu durumda four ile eşleşme olsa bile, 3.grup ile eşleşme arandığında (çünkü ifadede \3, four ile birlikte verilmiştir), 3. grup bir eşleşmeye konu olmadığından four ile eşleşme başarısız olacaktır.
Bir grup adresleme işleci bir yineleme işlecine argüman olarak kullanılabilir. Örneğin; (a(b))\2* ifadesi, a ve a'dan sonra gelen iki veya daha fazla b ile eşleşir. Benzer şekilde, (a(b))\2{3} ifadesi abbbb ile eşleşir.
Bir rakam'ıncı grup yoksa düzenli ifade geçersiz olur.
Önceki Üst Ana Başlık Sonraki
Gruplama İşleçleri Başlangıç Demirleme İşleçleri
Bir Linux Kitaplığı Sayfası