Düzenli ifadelerde ileriye ve geriye bakma kabiliyeti çok lazım olan şeylerden birisi. Nasıl yapıldığını anlatan gördüğüm en iyi site burası.
Buradaki sorudan da anlaşıldığı gibi ileri ve geri bakma kabiliyeti bi-directional iterator kullanılmasını gerektiriyor.
İleriye Bakma
Peki bu yetenek neden lazım ? Şöyle bir örnek vereyim. Diyelim ki virgül ile biten sayıları arıyoruz, ancak virgül karakterinin arama sonucunda dönmesini istemiyoruz. Eğer ileri bakma yeteneği olmasaydı bu aramayı yapamazdık. Bu gibi durumlar için düzenli ifadelerdeki positive lookahead, negative lookahead, positive lookbehind ve negative lookbehind kabiliyeti kullanılıyor. Bu yeteneklere hepsine kısaca lookaround deniyor.
Lookahead için ? işareti, lookbehind içinse ?< işareti ile başlayan düzenli ifadeler kullanılır.
Positive Lookahead : İleriye bakarak verilen düzenli ifadeyle bittiğinin kontrol
Positive Lookahead yazısına taşıdım.
Negative Lookahead : İleriye bakarak verilen düzenli ifadeyle bitmediğinin kontrolü
Düzenli ifadeye (?! ile başlayan bir ek yapılır. RegEx to extract the first 6 to 10 digit number, excluding 8 digit numbers örneğinde
ifadesi için negative lookahead kullanılmış.
Geriye Bakma
Negative LookBehind - Geriye bakarak verilen düzenli ifade ile başlamadığının kontrolü
Düzenli ifadeye (?<! ile başlayan bir ek yapılır. How do I properly use negative lookahead for this Java regex? sorusundan aldığım örnek aşağıda.
Bir başka örnek ise burada.
Bu örnekte 3 haneli bir sayının &# karakterleri ve alfanümerik bir metin ile başlamadığı kontrol edilir.
Bir diğer örnekte ise "-" karakteri başlamayan boşluk karakteri ayrılıyor.
Positive LookBehind
Positive Lookbehind yazısına taşıdım
Buradaki sorudan da anlaşıldığı gibi ileri ve geri bakma kabiliyeti bi-directional iterator kullanılmasını gerektiriyor.
İleriye Bakma
Peki bu yetenek neden lazım ? Şöyle bir örnek vereyim. Diyelim ki virgül ile biten sayıları arıyoruz, ancak virgül karakterinin arama sonucunda dönmesini istemiyoruz. Eğer ileri bakma yeteneği olmasaydı bu aramayı yapamazdık. Bu gibi durumlar için düzenli ifadelerdeki positive lookahead, negative lookahead, positive lookbehind ve negative lookbehind kabiliyeti kullanılıyor. Bu yeteneklere hepsine kısaca lookaround deniyor.
Lookahead için ? işareti, lookbehind içinse ?< işareti ile başlayan düzenli ifadeler kullanılır.
Positive Lookahead : İleriye bakarak verilen düzenli ifadeyle bittiğinin kontrol
Positive Lookahead yazısına taşıdım.
Negative Lookahead : İleriye bakarak verilen düzenli ifadeyle bitmediğinin kontrolü
Düzenli ifadeye (?! ile başlayan bir ek yapılır. RegEx to extract the first 6 to 10 digit number, excluding 8 digit numbers örneğinde
ifadesi için negative lookahead kullanılmış.
Geriye Bakma
Negative LookBehind - Geriye bakarak verilen düzenli ifade ile başlamadığının kontrolü
Düzenli ifadeye (?<! ile başlayan bir ek yapılır. How do I properly use negative lookahead for this Java regex? sorusundan aldığım örnek aşağıda.
Bir başka örnek ise burada.
Bir diğer örnekte ise "-" karakteri başlamayan boşluk karakteri ayrılıyor.
Positive LookBehind
Positive Lookbehind yazısına taşıdım