Lookaround'lar sıfır genişlik iddiasıdır. Bir regex (mevcut pozisyonun sağına veya soluna doğru - ileri veya arkaya dayalı olarak) kontrol ederler, bir eşleşme bulunduğunda (pozitif veya negatif olmasına bağlı olarak) başarılı veya başarısız olurlar ve eşleşen kısmı atarlar. Herhangi bir karakter tüketmezler - onları takip eden normal ifade eşleşmesi (varsa) aynı imleç konumunda başlar.
Okuma Daha fazla bilgi için regular-expression.info sayfasını .
Sözdizimi:
(?=REGEX_1)REGEX_2
Yalnızca REGEX_1 eşleşirse eşleşir; REGEX_1 eşleştirildikten sonra maç atılır ve REGEX_2 araması aynı konumda başlar.
misal:
(?=[a-z0-9]{4}$)[a-z]{1,2}[0-9]{2,3}
REGEX_1, [a-z0-9]{4}$
dört alfasayısal karakter ve ardından satır sonu ile eşleşir.
REGEX_2, [a-z]{1,2}[0-9]{2,3}
bir veya iki harf ve ardından iki veya üç basamakla eşleşir.
REGEX_1, dize uzunluğunun gerçekten 4 olduğundan emin olur, ancak REGEX_2 aramasının aynı yerde başlaması için herhangi bir karakter tüketmez. Şimdi REGEX_2, dizenin diğer bazı kurallarla eşleştiğinden emin olur. İleriye bakmadan, üç veya beş uzunluktaki dizelerle eşleşir.
Sözdizimi:
(?!REGEX_1)REGEX_2
Yalnızca REGEX_1 eşleşmiyorsa eşleştirin; REGEX_1 kontrol edildikten sonra REGEX_2 araması aynı konumda başlar.
misal:
(?!.*\bFWORD\b)\w{10,30}$
Önden bakma parçası, dizgideki ini denetler FWORD
ve bulursa başarısız olur. O bulamazsa FWORD
, ileriye bakma başarılı ve dizi 'uzunluğu 10 ile 30 arasında olduğunu aşağıdaki parça doğrular ve sadece kelime karakterleri içerdiğinia-zA-Z0-9_
Geriye bakma, ileriye bakmaya benzer: sadece geçerli imleç konumunun arkasına bakar. Javascript gibi bazı regex lezzetleri, geriye dönük iddiaları desteklemez. Ve onu destekleyen çoğu lezzet (PHP, Python vb.), Arka kısmın sabit bir uzunluğa sahip olmasını gerektirir.
- Atom grupları temel olarak bir token eşleştikten sonra gruptaki sonraki simgeleri atar / unutur. Atomik grup örnekleri için bu sayfayı kontrol edin