Ana içeriğe geç
Modül 1 · Ders 3 ders 4Kurstaki 3/32~8 min
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).

Code
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.

Code
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

Egzersiz#regex.m1.l3.e1
Denemeler: 0Yükleniyor…

Parantezlerle ayrılmış her üç karakter üçlüsünü bulun; '(abc)', '(xyz)'. 3 iç karakter için joker karakteri kullanın.

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

Egzersiz#regex.m1.l3.e2
Denemeler: 0Yükleniyor…

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.

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

Egzersiz#regex.m1.l3.e3
Denemeler: 0Yükleniyor…

Find all 3-character sequences starting with `c` and ending with `t` (e.g. `cat`, `cot`, `c-t`).

Düzenleyici yükleniyor…
İpucu göster

Desen '.' noktasını kullanır. joker orta karakteri temsil etmek için.

3 denemeden sonra çözüm mevcut