Chuyển đến nội dung chính
Mô-đun 1 · Bài học 4 trong tổng số 44/32 trong khóa học~10 min
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:

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

(/ 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 /.../.)

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

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

Trì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ập thể dục#regex.m1.l4.e1
Nỗ lực: 0Đang tải…

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à `.`.

Đang tải trình chỉnh sửa…
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ập thể dục#regex.m1.l4.e2
Nỗ lực: 0Đang tải…

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.

Đang tải trình chỉnh sửa…
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

tập thể dục#regex.m1.l4.e3
Nỗ lực: 0Đang tải…

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

Đang tải trình chỉnh sửa…
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ử