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:
. * + ? ^ $ | \ ( ) [ ] { } /(/ gerçekte bir motor meta karakteri değildir, ancak
JavaScript değişmez gösterimi /.../.)
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.
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslashKurs 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
Tüm fiyatları "$N.NN" biçiminde bulun (dolar, bir veya daha fazla rakam, nokta, iki rakam). `$` ve `.` karakterlerinden kaçmayı unutmayın.
İ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
Metindeki her gerçek soru işaretini `?` bulun. `?` bir meta karakterdir: kaçılmalıdır.
İpucu göster
Kaçış olmadan mı? bir niceleyici olacaktır (modül 2). Önüne \\ koyun.
3 denemeden sonra çözüm mevcut
Ek zorluk
Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.
İpucu göster
Bundan kaçınmak için her noktanın önüne ters eğik çizgi ekleyin.
3 denemeden sonra çözüm mevcut