Pelajaran modul (4/4)
Melarikan diri dari meta-karakter
Beberapa karakter dalam regex memiliki arti khusus: mereka dipanggil
meta-karakter. Jika Anda ingin mencocokkan karakter literal (misalnya karakter nyata
., + asli, tanda kurung asli) Anda perlu mengawalinya dengan
garis miring terbalik \, yang menghindari mereka.
Karakter meta yang perlu diingat ada dua belas:
. * + ? ^ $ | \ ( ) [ ] { } /(/ sebenarnya bukan karakter meta mesin, tetapi harus di-escape dalam
notasi literal JavaScript /.../.)
Pattern: \$\d+\.\d\d
Sample: Prezzi: $9.99, $12.50, totale $22.49.
^^^^^ ^^^^^^ ^^^^^^Di sini kita keluar dari $ (jangkar akhir string) dan . (wildcard) untuk mencocokkan
karakter literal dalam format harga "dolar + angka + titik + dua digit".
Garis miring terbalik ganda dalam string JS
Saat Anda menulis pola di dalam string JavaScript (seperti yang Anda lakukan di
latihan) garis miring terbalik harus dua kali lipat. String JS '\\d' berisi
dua karakter (\ dan d) dan merupakan pola regex \d.
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslashEditor kursus menunjukkan pola sudah didekodekan (Anda melihat satu pola
\d); Anda tidak perlu menggandakan apa pun sendiri.
12 karakter meta khusus
Karakter dengan arti khusus di mesin tepatnya ada 12: \\\ ^ $ . | ? * + ( ) [ {. Jika Anda ingin mencocokkannya sebagai teks literal, Anda harus mengawalinya dengan garis miring terbalik. Di beberapa lingkungan (misalnya string JS non-mentah), Anda mungkin perlu menggandakan garis miring terbalik (\\\\).
Cobalah
Temukan setiap harga dalam format `$N.NN` (dolar, satu digit atau lebih, titik, dua digit). Ingatlah untuk menghindari `$` dan `.`.
Tunjukkan petunjuk
$ harus di-escape sebagai \\$, titik sebagai \\. - jika tidak, titik itu cocok dengan apa pun.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Temukan setiap tanda tanya literal `?` dalam teks. `?` adalah karakter meta: harus di-escape.
Tunjukkan petunjuk
Tanpa jalan keluar,? akan menjadi pembilang (modul 2). Letakkan \\ di depannya.
Solusi tersedia setelah 3 upaya
Tantangan tambahan
Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.
Tunjukkan petunjuk
Masukkan garis miring terbalik sebelum setiap titik untuk menghindarinya.
Solusi tersedia setelah 3 upaya