Ana içeriğe geç
Modül 6 · Ders 2 ders 4Kurstaki 22/32~10 min
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.

Code
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 -- the olmayan bir kelime.
  • (?!\s) -- geçerli konum bir boşluk DEĞİLDİR ("kırpma" olarak kullanışlıdır).
Code
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

Egzersiz#regex.m6.l2.e1
Denemeler: 0Yükleniyor…

Ardından 'euro' gelmeyen her sayıyı bulun (yani euro fiyatları hariç).

Düzenleyici yükleniyor…
İ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

Egzersiz#regex.m6.l2.e2
Denemeler: 0Yükleniyor…

'The' (büyük/küçük harfe duyarlı olmayan) olmayan en az 3 harften oluşan her kelimeyi bulun.

Düzenleyici yükleniyor…
İ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

Egzersiz#regex.m6.l2.e3
Denemeler: 0Yükleniyor…

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`).

Düzenleyici yükleniyor…
İ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