Bài học theo mô-đun (4/4)
Thoát khỏi siêu ký tự
Một số ký tự trong biểu thức chính quy có ý nghĩa đặc biệt: chúng được gọi là
siêu ký tự. Nếu bạn muốn khớp ký tự chữ (ví dụ: một ký tự thực
., + thực, dấu ngoặc đơn thực), bạn cần thêm tiền tố vào chúng bằng một
dấu gạch chéo ngược \, thoát chúng.
Các ký tự meta cần nhớ là mười hai:
. * + ? ^ $ | \ ( ) [ ] { } /(/ không thực sự là một siêu ký tự động cơ, nhưng nó phải được thoát trong
ký hiệu bằng chữ JavaScript /.../.)
Pattern: \$\d+\.\d\d
Sample: Prezzi: $9.99, $12.50, totale $22.49.
^^^^^ ^^^^^^ ^^^^^^Ở đây chúng ta thoát $ (neo cuối chuỗi) và . (ký tự đại diện) để khớp với
ký tự chữ ở định dạng giá "đô la + số + dấu chấm + hai chữ số".
Dấu gạch chéo ngược kép trong chuỗi JS
Khi bạn viết một mẫu bên trong một chuỗi JavaScript (giống như bạn làm trong
bài tập) dấu gạch chéo ngược phải gấp đôi. Chuỗi JS '\\d' chứa
hai ký tự (\ và d) và chính xác là mẫu biểu thức chính quy \d.
const re1 = /\d+/; // literal notation: a single backslash
const re2 = new RegExp('\\d+'); // string: double backslashTrình chỉnh sửa khóa học hiển thị mẫu đã được giải mã (bạn thấy một
\d); bạn không cần phải tự mình nhân đôi bất cứ thứ gì.
12 siêu ký tự đặc biệt
Các ký tự có ý nghĩa đặc biệt trong động cơ chính xác là 12: \\\ ^ $ . | ? * + ( ) [ {. Nếu bạn muốn so khớp chúng dưới dạng văn bản bằng chữ, bạn phải đặt trước chúng bằng dấu gạch chéo ngược. Trong một số môi trường (ví dụ: chuỗi JS không thô), bạn có thể cần tăng gấp đôi dấu gạch chéo ngược (\\\\).
Hãy thử nó
Tìm mọi giá ở định dạng `$N.NN` (đô la, một hoặc nhiều chữ số, dấu chấm, hai chữ số). Nhớ thoát `$` và `.`.
Hiển thị gợi ý
$ phải được thoát dưới dạng \\$, dấu chấm là \\. - nếu không thì dấu chấm khớp với bất kỳ thứ gì.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Tìm mọi dấu hỏi theo nghĩa đen `?` trong văn bản. `?` là một siêu ký tự: nó phải được thoát.
Hiển thị gợi ý
Không có lối thoát, ? sẽ là một bộ định lượng (mô-đun 2). Đặt một \\ ở phía trước nó.
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
Find all occurrences of `.tar.gz` in the text, ensuring that the dots are matched literally.
Hiển thị gợi ý
Chèn dấu gạch chéo ngược trước mỗi dấu chấm để thoát khỏi nó.
Giải pháp khả dụng sau 3 lần thử