Chuyển đến nội dung chính
eLearner.app

Khóa học tương tác

Khóa học Regex

Tìm hiểu các biểu thức chính quy từ đầu, bằng tiếng Anh, với một công cụ chạy mọi mẫu trực tiếp trong trình duyệt và hiển thị cho bạn các kết quả phù hợp trong thời gian thực.

01 · Mô-đun 1 - Cơ bản

4 bài học

Nền tảng của biểu thức chính quy: mẫu chữ, lớp ký tự cơ bản, ký tự đại diện `.` và ký tự meta thoát.

  1. 1.1mẫu chữKý tự thông thường, phân biệt chữ hoa chữ thường và lần chạy đầu tiên: khớp và lập chỉ mục.~8 min
  2. 1.2Các lớp cơ bản: \d \w \sCác lớp được xác định trước cho chữ số, ký tự từ và khoảng trắng (và các phiên bản phủ định của chúng).~10 min
  3. 1.3Ký tự đại diện: dấu chấm `.`Ký tự `.` khớp với hầu hết mọi thứ: nó bao gồm những gì, loại trừ những gì và tại sao cờ `s` lại quan trọng.~8 min
  4. 1.4Thoát khỏi siêu ký tự12 ký tự meta cần thoát bằng `\`, khi bạn cần dấu gạch chéo ngược kép và lý do.~10 min

02 · Mô-đun 2 - Định lượng

4 bài học

Cần lặp lại bao nhiêu: `*`, `+`, `?`, các khoảng `{n,m}` và sự khác biệt giữa tham lam và lười biếng.

  1. 2.1`*`, `+`, `?`Không hoặc nhiều, một hoặc nhiều, tùy chọn: ba bộ định lượng cơ bản.~10 min
  2. 2.2Số lượng chính xác `{n,m}`Chính xác là `n`, từ `n` đến `m`, ít nhất là `n`: bộ định lượng số.~10 min
  3. 2.3Tham lam vs lười biếngTheo mặc định, các bộ định lượng là tham lam (`.*`); thêm `?` cho phiên bản lười biếng (`.*?`).~10 min
  4. 2.4Quay lại: tổng quanĐộng cơ sẽ làm gì khi bộ định lượng tham lam không thành công và tại sao nó có thể đắt tiền.~12 min

03 · Mô-đun 3 - Điểm neo và ranh giới

4 bài học

Vị trí, không phải ký tự: neo vào đầu/cuối chuỗi, vào ranh giới từ và vào đầu/cuối mỗi dòng bằng cờ `m`.

  1. 3.1Bắt đầu và kết thúc: `^` và `$`Neo một mẫu vào ký tự đầu tiên hoặc cuối cùng của chuỗi.~8 min
  2. 3.2Ranh giới từ: `\b` `\B`Sự chuyển đổi giữa các ký tự từ và không phải từ; tìm toàn bộ từ.~10 min
  3. 3.3Cờ `m`: nhiều dòngVới cờ `m`, `^` và `$` neo vào đầu/cuối mỗi dòng.~10 min
  4. 3.4Dòng trống và cắtCác mẫu hữu ích: khớp các dòng trống, cắt bớt khoảng trắng ở đầu/cuối dòng.~10 min

04 · Mô-đun 4 - Nhóm và luân phiên

4 bài học

Nhóm với `()`, chọn trong số các lựa chọn thay thế bằng `|`, tránh chụp bằng `(?:...)`, đặt tên nhóm bằng `(?<name>...)` và tham chiếu lại ảnh chụp trước đó bằng tham chiếu ngược.

  1. 4.1Nhóm bắt giữ: `(...)`Dấu ngoặc đơn để nhóm và chụp; truy cập các nhóm 1, 2, 3… trong các trận đấu.~10 min
  2. 4.2Thay thế: `|`Ống chọn giữa hai hoặc nhiều mẫu phụ; ưu tiên và dấu ngoặc đơn.~10 min
  3. 4.3Nhóm không bắt giữ: `(?:...)`Nhóm mà không cần tạo bản chụp: hữu ích khi bạn chỉ cần định lượng hoặc thay thế.~10 min
  4. 4.4Các nhóm được đặt tên và tài liệu tham khảo ngược`(?<name>...)` để đặt tên; `\1` `\k<name>` để quay lại quá trình chụp.~12 min

05 · Mô-đun 5 - Các lớp ký tự

4 bài học

Xác định các bộ tùy chỉnh với `[...]`, sử dụng phạm vi, phủ định bằng `[^...]` và tiếp cận các thuộc tính Unicode bằng `\p{...}` và cờ `u`.

  1. 5.1Bộ ký tự: `[abc]`Dấu ngoặc vuông xác định một tập hợp các ký tự được phép ở một vị trí.~8 min
  2. 5.2Phạm vi bên trong các lớp: `[a-z0-9]`Khoảng thời gian thông qua dấu gạch ngang; kết hợp các phạm vi và ký tự đơn.~8 min
  3. 5.3Phủ định: `[^...]`Lớp phủ định khớp với mọi thứ **ngoại trừ** các ký tự được liệt kê.~8 min
  4. 5.4Thuộc tính Unicode thoát`\p{L}`, `\p{N}`, `\p{Script=...}` với cờ `u`: các lớp Unicode ngữ nghĩa.~12 min

06 · Mô-đun 6 - Nhìn xung quanh

4 bài học

Xác nhận có độ rộng bằng 0: xem tiến hoặc lùi trong chuỗi mà không tiêu tốn ký tự. Nhìn về phía trước `(?=)` `(?!)`, nhìn phía sau `(?<=)` `(?<!)`.

  1. 6.1Cái nhìn tích cực: `(?=...)`Kiểm tra xem một mẫu nhất định có tuân theo vị trí hiện tại mà không tiêu tốn nó hay không.~10 min
  2. 6.2Cái nhìn tiêu cực: `(?!...)`Kiểm tra xem một mẫu nhất định KHÔNG tuân theo vị trí hiện tại.~10 min
  3. 6.3Nhìn phía sau: `(?<=...)` `(?<!...)`Các phiên bản nhìn lại "nhìn lại"; Hỗ trợ ES2018+.~12 min
  4. 6.4Nhìn lại trong thực tếTrích xuất một giá trị mà không bao gồm ngữ cảnh, xác thực mật khẩu, phân tích các số được phân tách.~12 min

07 · Mô-đun 7 - Cờ, thay thế, phân chia

4 bài học

Tất cả các cờ (bao gồm `d`, `v`), `String.prototype.replace`/`replaceAll`/`split` bằng biểu thức chính quy, tham chiếu `$1`/`$<name>` trong chuỗi thay thế và thay thế các lệnh gọi lại.

  1. 7.1Tất cả các cờ chi tiết`g i m su v y d`: mỗi người làm gì và kết hợp như thế nào.~12 min
  2. 7.2Thay thế cơ bản và `$1`Thay thế các kết quả khớp bằng một chuỗi cố định hoặc bằng tham chiếu ngược `$1` / `$<name>`.~10 min
  3. 7.3Thay thế bằng một cuộc gọi lạiChức năng thay thế: chuyển đổi mọi kết quả khớp bằng mã JS tùy ý, truy cập vào các nhóm.~12 min
  4. 7.4Tách bằng biểu thức chính quyTách một chuỗi trên một mẫu (CSV cho phép, mã thông báo tối thiểu).~10 min

08 · Mô-đun 8 - Thực hành

4 bài học

Tổng hợp tất cả lại để giải quyết các vấn đề thực tế: xác thực email, phân tích nhật ký, trích xuất URL/IP, viết các mẫu chống ReDoS.

  1. 8.1Xác thực một emailMột mẫu email "đủ tốt" với sự cân bằng được giải thích.~12 min
  2. 8.2Trình phân tích cú pháp nhật ký ApacheTrích xuất IP, phương thức, đường dẫn và mã trạng thái từ dòng nhật ký bằng cách sử dụng các nhóm được đặt tên.~12 min
  3. 8.3Trích xuất URL và IPNhận dạng các URL http và địa chỉ IPv4 ở dạng văn bản tự do.~12 min
  4. 8.4Viết các mẫu an toàn ReDoSNhận biết các mô hình thảm họa (`(a+)+b`), tái cấu trúc chúng, sử dụng các bộ định lượng giống như nguyên tử.~14 min