Modül dersleri (2/4)
Negatif bakış açısı: `(?!...)`
Negatif bakış açısı (?!...), pozitif bakış açısının karanlık kız kardeşidir:
verilen modelin mevcut konumu takip ETMEMESİNİ gerektirir. öyle
hala sıfır genişlik: hiçbir karakter tüketilmez.
Pattern: \d+(?! euro)
Sample: Prezzo 100 euro, sconto 25 euro, totale 75 dollari.
^^Yalnızca 75 eşleşir, çünkü bu, ardından gelen OLMAYAN tek rakam dizisidir
euro. 100 ve 25 rakamlarının ardından euro gelir ve
hariç tutuldu.
Tipik negatif ileriye dönük modeller
^(?!.*errore).*$-- "hata" kelimesini İÇERMEYEN bir satır.\b(?!the\b)\w+\b--theolmayan bir kelime.(?!\s)-- geçerli konum bir boşluk DEĞİLDİR ("kırpma" olarak kullanışlıdır).
Pattern: ^(?!.*\.bak$).*$
Sample (multiline with flag m):
foto.jpg
backup.bak
documento.txt
Match: foto.jpg, documento.txt (excludes backup.bak)Negatif bakış açısı aracılığıyla gelişmiş hariç tutmalar
Negatif bakış açısı (?!...), hariç tutma mantığını uygulamak için gereklidir (bir şifrenin sözlük kelimeleri içermediğini veya bir tanımlayıcının class veya function gibi ayrılmış bir anahtar kelime olmadığını doğrulamak gibi).
Deneyin
Ardından 'euro' gelmeyen her sayıyı bulun (yani euro fiyatları hariç).
İpucu göster
'Takip etmemelisiniz' demek için (?! ...) kullanın. Sonrasında "euro" dizisi görünmemelidir.
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
'The' (büyük/küçük harfe duyarlı olmayan) olmayan en az 3 harften oluşan her kelimeyi bulun.
İpucu göster
\\b'den hemen sonra yalnızca the kelimesini hariç tutan negatif bir bakış açısı (?!the\\b) açın.
3 denemeden sonra çözüm mevcut
Ek zorluk
Find all words consisting of letters that do not contain the letter `x` at any position (e.g. match `test`, `game` but not `extra`, `box`).
İpucu göster
\\b sözcük sınırından hemen sonra negatif bakış açısı (?!\\w*x) kullanın.
3 denemeden sonra çözüm mevcut