Modül dersleri (3/4)
Joker karakter: nokta `.`
Normal ifadedeki nokta . joker karakterdir: herhangi bir tekliyle eşleşir
karakter\u2026 önemli bir istisna dışında: eşleşmiyor
yenisatır (\n).
Pattern: c.t
Sample: cat cot cut c@t c\nt
^^^ ^^^ ^^^ ^^^Üç harf: a c, herhangi bir karakter, a t. Arada yeni satır yok, dolayısıyla c\nt
eşleşmedi (varsayılan olarak).
Nokta son derece kullanışlıdır ama aynı zamanda tehlikelidir: disiplinsiz kullanıldığında
amaçladığınızdan daha fazlasını yakalar. Modül 2'deki niceleyicilerle birleştirilmiştir
(.*, .+?) "benim yaptığım gibi çalışmayan kalıpların %90'ının kaynağıdır
bekleniyor".
s bayrağı: "dotAll"
s bayrağıyla (dotAll veya tek satır olarak da bilinir) nokta eşleşir
her karakter, yeni satır dahil. Yayılan blokları çıkarmak için kullanışlıdır
birden fazla satır.
Pattern: <p>.*</p>
Flag: gs
Sample: <p>prima\nseconda</p>
^^^^^^^^^^^^^^^^^^^^^Nokta joker karakterinin sınırları ve davranışı
. noktası güçlü bir joker karakterdir, ancak varsayılan olarak yeni satır karakterleriyle eşleşmez (\\n). Noktanın yeni satırlar da dahil olmak üzere kesinlikle her şeyle eşleşmesini istiyorsanız s (dotAll) bayrağını etkinleştirmelisiniz. Noktayı niceleyicilerle (.*) birleştirirken dikkatli olun, çünkü çok fazla metin tüketir (açgözlü davranış).
Deneyin
Parantezlerle ayrılmış her üç karakter üçlüsünü bulun; '(abc)', '(xyz)'. 3 iç karakter için joker karakteri kullanın.
İpucu göster
Üç rastgele karakter için üç nokta. Parantezler meta karakterlerdir: \\ ile önlenmelidirler.
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
Birden fazla satıra yayılabilen `[INIZIO]` ve `[FINE]` arasındaki bloğu çıkarın. Noktanın aynı zamanda yeni satırlarla eşleşmesi için `s` bayrağına ve niceleyicinin 'tembel' versiyonuna (`.*?`, modül 2) ihtiyacınız olacaktır.
İpucu göster
S bayrağı olmadan nokta satırın sonunda durur: onu ekleyin. Form .*? (tembel) maçı ilk başta durdurur [FINE].
3 denemeden sonra çözüm mevcut
Ek zorluk
Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).
İpucu göster
Desen '.' noktasını kullanır. joker orta karakteri temsil etmek için.
3 denemeden sonra çözüm mevcut