Chuyển đến nội dung chính
Mô-đun 5 · Bài học 4 trong tổng số 420/32 trong khóa học~12 min
Bài học theo mô-đun (4/4)

Thuộc tính Unicode thoát

Các lớp \w, \d, \s trong ASCII không đủ cho tiếng Ý, tiếng Pháp, tiếng Hy Lạp hoặc văn bản biểu tượng cảm xúc. Ưu đãi JavaScript hiện đại (với cờ u -- Unicode) thoát thuộc tính \p{...}: các lớp ngữ nghĩa dựa trên Unicode thuộc tính của các ký tự.

Code
Pattern: \p{L}+        (with flag u)
Sample:  Ciao caffe' \u00fcber \u4e16\u754c
         ^^^^ ^^^^^^^ ^^^^ ^^^^

\p{L} = "bất kỳ Chữ cái nào (Unicode)": bao gồm các chữ cái có dấu, tiếng Trung chữ tượng hình, chữ Cyrillic, tiếng Hy Lạp\u2026 mọi thứ. Những cái phổ biến nhất:

  • \p{L} -- chữ cái (thuộc bất kỳ bảng chữ cái nào).
  • \p{N} -- số (chữ số Ả Rập, La Mã, Ấn Độ\u2026).
  • \p{P} -- dấu câu.
  • \p{S} -- ký hiệu (toán học, tiền tệ, biểu tượng cảm xúc\u2026).
  • \p{Z} -- dấu cách/dấu phân cách.
  • \p{Script=Latin} -- cụ thể là bảng chữ cái Latinh.
  • \p{Script=Greek} -- bảng chữ cái Hy Lạp. Và vân vân.

Và các phiên bản phủ định \P{L}, \P{N}, \u2026

Sự khác biệt với \w và \d

Code
\\w matches [A-Za-z0-9_]              -- ASCII only, no "caffe'"
\\p{L}\\p{N}_  with flag u            -- includes accented characters

Để có trình phân tích cú pháp mạnh mẽ cho văn bản tiếng Ý, thích \p{L} hơn \w: citta', perche', andro' khớp chính xác với các từ.

Thuộc tính Unicode và khả năng tương thích trình duyệt

Các thuộc tính Unicode như \\p{L} (Chữ cái) hoặc \\p{Script=Latin} mở rộng các lớp sang bảng chữ cái quốc tế. Trong JavaScript, chúng yêu cầu nghiêm ngặt cờ u (hoặc v), nếu không công cụ sẽ đưa ra lỗi cú pháp.

Hãy thử nó

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

Tìm mọi từ, kể cả những từ có dấu (citta', perche', e' \u2026). Sử dụng thuộc tính escape \\p{L} với cờ u.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Thay thế \\w+ bằng \\p{L}+ và thêm cờ u (ngoài 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.m5.l4.e2
Nỗ lực: 0Đang tải…

Tìm mọi ký hiệu Unicode (tiền tệ, toán học, biểu tượng cảm xúc) trong văn bản, ngoại trừ các chữ cái và chữ số.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

\\p{S} khớp với danh mục Ký hiệu của Unicode. Hãy nhớ cờ u.

Giải pháp khả dụng sau 3 lần thử

Thử thách bổ sung

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

Tìm tất cả các từ có chứa các chữ cái trong bảng chữ cái Cyrillic bằng cách sử dụng `\p{Script=Cyrillic}`.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng \\p{Script=Cyrillic} với bộ định lượng + và cờ u.

Giải pháp khả dụng sau 3 lần thử