Daha iyi anlamak için üç ifadeyi artı bir yakalama grubunu uygulayalım ve her davranışı analiz edelim.
()
yakalama grubu - parantez içindeki normal ifade eşleşmeli ve eşleşme bir yakalama grubu oluşturmalıdır
(?:)
yakalamayan grup - parantez içindeki normal ifade eşleşmelidir ancak yakalama grubunu oluşturmaz
(?=)
olumlu ileriye bak - normal ifadenin eşleşmesi gerektiğini iddia eder
(?!)
negatif ileriye bak - normal ifadeyle eşleştirmenin imkansız olduğunu iddia eder
En uygulayalım q(u)i
için çıkın . q ile q
eşleşir ve yakalama grubu u ile eşleşir . Yakalama grubu içindeki maç alınır ve bir yakalama grubu oluşturulur. Böylece motor devam ediyor . Ve i eşleşecek . Bu son maç denemesi başarılı. qui eşleştirilir ve u ile bir yakalama grubu oluşturulur.u
i
i
En uygulayalım q(?:u)i
için çıkın . Yine q ile q
eşleşir ve yakalamayan grup u ile eşleşir . Yakalamayan gruptan maç alınır, ancak yakalama grubu oluşturulmaz. Böylece motor devam ediyor . Ve i eşleşecek . Bu son maç denemesi başarılı. qui eşleştiu
i
i
En uygulayalım q(?=u)i
için çıkın . Önden bakış olumludur ve bunu başka bir belirteç izler. Yine, q
maçları q ve u
maçları u . Yine, önden gelen eşleşme atılmalıdır, böylece motor i
dizeden u'ya geri döner . Önden bakış başarılı oldu, bu yüzden motor devam ediyor i
. Ama ui
eşleşemez . Yani bu maç girişimi başarısız olur.
En uygulayalım q(?=u)u
için çıkın . Önden bakış olumludur ve bunu başka bir belirteç izler. Yine, q
maçları q ve u
maçları u . Önden gelen eşleşme atılmalıdır, böylece motor u
dizeden u'ya geri adım atar . Önden bakış başarılı oldu, bu nedenle motor devam ediyor u
. Ve u
maç olacak u . Yani bu maç girişimi başarılı. qu eşleşti
En uygulayalım q(?!i)u
için çıkın . Bu durumda bile ilerleme pozitiftir (çünkü i
eşleşmez) ve ardından başka bir belirteç gelir. Yine q ile q
eşleşir ve u ile eşleşmez . Önden gelen eşleşme atılmalıdır, böylece motor dizeden u'ya geri adım atar . Önden bakış başarılı oldu, bu nedenle motor devam ediyor . Ve maç olacak u . Yani bu maç girişimi başarılı. qu eşleştii
u
u
u
Dolayısıyla, sonuç olarak, önden bakan ve yakalamayan gruplar arasındaki gerçek fark, sadece varlığını test etmek veya test etmek ve maçı kaydetmek isteyip istemediğinizle ilgilidir. Grup yakalama pahalıdır, bu yüzden dikkatli kullanın.