Ana içeriğe geç
Modül 1 · Ders 4 ders 4Kurstaki 4/32~10 min
Modül dersleri (4/4)

Meta karakterlerden kaçış

Regex'teki bazı karakterlerin özel bir anlamı vardır: bunlara denir meta karakterler. Gerçek karakterle eşleşmek istiyorsanız (örneğin gerçek bir karakter) ., gerçek bir +, gerçek bir parantez) bunların önüne bir karakter koymanız gerekir ters eğik çizgi \, bu onlardan kaçar.

Hatırlanması gereken meta karakterler on ikidir:

Code
.  *  +  ?  ^  $  |  \  (  )  [  ]  {  }  /

(/ gerçekte bir motor meta karakteri değildir, ancak JavaScript değişmez gösterimi /.../.)

Code
Pattern: \$\d+\.\d\d
Sample:  Prezzi: $9.99, $12.50, totale $22.49.
                 ^^^^^  ^^^^^^         ^^^^^^

Burada $ (dize sonu çapası) ve . (joker karakter) karakterlerinden kaçarız. "dolar + sayı + nokta + iki rakam" fiyat biçimindeki değişmez karakterler.

JS dizelerinde çift ters eğik çizgi

Bir JavaScript dizesinin içine bir model yazdığınızda (bizim uygulamamızda yaptığınız gibi) egzersizleri) ters eğik çizgi iki katına çıkarılmalıdır. '\\d' JS dizesi şunu içerir: iki karakter (\ ve d) ve tam olarak \d normal ifade kalıbıdır.

JS
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslash

Kurs düzenleyici zaten kodu çözülmüş modeli gösterir (tek bir \d); hiçbir şeyi kendiniz ikiye katlamak zorunda değilsiniz.

12 özel meta karakter

Motorda özel anlam taşıyan karakterler tam olarak 12 adettir: \\\ ^ $ . | ? * + ( ) [ {. Bunları gerçek metin olarak eşleştirmek istiyorsanız önüne ters eğik çizgi koymalısınız. Bazı ortamlarda (örneğin, ham olmayan JS dizeleri), ters eğik çizgiyi (\\\\) iki katına çıkarmanız gerekebilir.

Deneyin

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

Tüm fiyatları "$N.NN" biçiminde bulun (dolar, bir veya daha fazla rakam, nokta, iki rakam). `$` ve `.` karakterlerinden kaçmayı unutmayın.

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

$, \\$ olarak, nokta ise \\ olarak değiştirilmelidir. - aksi takdirde nokta herhangi bir şeyle eşleşir.

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

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

Metindeki her gerçek soru işaretini `?` bulun. `?` bir meta karakterdir: kaçılmalıdır.

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

Kaçış olmadan mı? bir niceleyici olacaktır (modül 2). Önüne \\ koyun.

3 denemeden sonra çözüm mevcut

Ek zorluk

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

Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.

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

Bundan kaçınmak için her noktanın önüne ters eğik çizgi ekleyin.

3 denemeden sonra çözüm mevcut