Savlar, düzenli bir ifadenin yalnızca belirli denetimli koşullar altında eşleşmesine olanak tanır.
Bir savın eşleşecek bir karaktere gereksinimi yoktur; olası bir eşleşmeyi onaylamadan önce çevreyi araştırır. Örneğin, sözcük sınırı savı, konumunda bir sözcüğün karşısında sözcük olmayan bir karakter bulmaya çalışmaz, bunun yerine bir sözcük karakterinin bulunmadığından emin olur. Bu, hiçbir karakterin olmadığı durumda iddianın eşleşebileceği anlamına gelir; örneğin aranan bir dizinin sonunda.
Bazı savların aslında eşleşecek bir dizgisi vardır; ancak dizi eşleşmesinin parçası, tam ifade eşleşmesinin sonucunun bir parçası olmayacaktır.
Burada belgelenen düzenli ifadeler aşağıdaki savları destekler:
^(şapka: dizinin başı)Aranan dizinin başlangıcıyla eşleşir.
^Peterifadesi, “Peter, hey!” dizisindeki “Peter” ile eşleşir; ancak “Hey, Peter!” ile eşleşmez$(dizi sonu)Aranan dizinin sonuyla eşleşir.
you\?$ifadesi, “You didn’t do that, did you?” dizisindeki son you ile eşleşir; ancak “You didn’t do that, right?” ile eşleşmez\b(sözcük sınırı)Bir tarafta sözcük karakteri varken diğer tarafta yoksa eşleşir.
Bu, sözcük sonlarını bulmak için kullanışlıdır; örneğin, bir sözcüğün tamamını bulmak için her iki uç da kullanılabilir.
\bin\bifadesi, “He came in through the window” dizisindeki “in” ile eşleşir; ancak “window” içindeki “in” ile eşleşmez.\B(sözcük sınırı olmayan)“\b” ifadesinin eşleşmediği her yerde eşleşir.
Bu, örneğin sözcüğün içinde eşleşeceği anlamına gelir:
\Bin\Bifadesi, “window” ile eşleşir; ancak “integer” veya “I’m in love” ile eşleşmez.(?=DİZGİ)(pozitif ileri bakış)İleriye bakan bir sav, dizinin olası bir eşleşmeyi takip eden kısmına bakar. Olası eşleşmeyi takip eden metin savın DİZGİ’siyle eşleşmezse pozitif bakış dizinin eşleşmesini engeller; ancak bununla eşleşen metin sonuçta içerilmez.
handy(?=\w)ifadesi “handyman” içindeki “handy” ile eşleşir; ancak “That came in handy!” içindekiyle eşleşmez(?!DİZGİ)(negatif ileri bakış)Negatif bakış, aranan dizinin aşağıdaki bölümünün DİZGİ ile eşleşmesi durumunda olası bir eşleşmenin onaylanmasını önler.
const \w+\b(?!\s*&)ifadesi, “const char* foo” içindeki “const char” ile eşleşir; ancak “const QString& bar” içindeki “const QString” ile eşleşmez; çünkü “&” negatif ileriye bakan sav dizgisi ile eşleşir.(?<=DİZGİ)(pozitif geri bakış)Arkaya bakma, ileriye bakmayla aynı etkiye sahiptir; ancak geriye doğru çalışır. Geriye doğru bir bakış, dizinin olası bir eşleşmeden önceki kısmına bakar. Pozitif geriye bakış, yalnızca savın DİZGİ’sinden önce geliyorsa bir diziyle eşleşir; ancak bununla eşleşen metin sonuçta içerilmez.
(?<=cup)cakeifadesi,“cake” ile yalnızca önünde “cup” geliyorsa eşleşir (“cupcake” gibi; ancak “cheesecake” veya tek başına “cake” değilse).(?<!DİZGİ)(negatif geri bakış)Negatif geriye bakış, aranan dizinin önceki kısmı DİZGİ ile eşleşmiyorsa olası bir eşleşmenin onaylanmasını önler.
(?<![\w\.])[0-9]+ifadesi, “=123” ve “-123” dizilerindeki “123” ile eşleşir; ancak “.123” veya “word123” içindeki “123” ile eşleşemez.(DİZGİ)(yakalayan grup)Parantez içindeki alt dizgi yakalanır ve anımsanır; böylece geriye başvurularda kullanılabilir. Örneğin,
("+)[^"]*\1ifadesi,""""text""""ve"text"ile eşleşir.Daha fazla bilgi için Eşleşen metni yakalamak (geriye başvurular) bölümüne bakın.
(?:DİZGİ)(yakalamayan grup)Parantez içindeki alt dizgi yakalanmaz ve anımsanmaz. Yakalamalar kullanılmayacaksa her zaman yakalamayan grupların kullanılması tercih edilir.