So khớp kí tự Unicode

Mã kí tự phổ biến trước đây là mã ASCII, tuy nhiên, để đáp ứng với sự đa dạng về ngôn ngữ trên thế giới, mã Unicode ra đời đáp ứng hơn 100000 kí tự (mã ASCII chỉ 128 kí tự).

Xét đoạn văn bản mẫu sau:


Qu’est-ce que la tolérance? c’est l’apanage de l’humanité.

Nous sommes tous pétris de faiblesses et d’erreurs;

pardonnons-nous réciproquement nos sottises, c’est la première loi de la nature.

Trong đoạn văn bản mẫu trên có nhiều kí tự không thể được nhận diện bởi mã ASCII, ví dụ kí tự é (mã Unicode là 233 (cơ số 10) hay 00e9 (cơ số 16)).

Mở lại Regex Pal (regexpal.com), gõ \u00e9 trên ô Regular Expression, copy đoạn văn bản mẫu ở trên và dán vào ô Test String, kết quả:

JavaScript cũng cho phép chúng ta sử dụng cú pháp \xe9 tương đương \u00e9

Xét đoạn văn bản mẫu tiếng Nhật sau:


古池

蛙飛び込む

水の音

—芭蕉 (1644–1694)

Trong Regex Pal gõ \u6c60 trong ô Regular Expression:

Gõ \u2013:

 So khớp các kí tự cơ số 8 (octal)

Có thể so khớp các kí tự với mã cơ số 8 thay vì cơ số 16 chỉ bằng dấu \ và giá trị cơ số 8. Ví dụ \351 tương đương với \u00e9:

So khớp các thuộc tính của kí tự Unicode

Thuộc tính (property) là các đặc điểm của kí tự như kí tự là chữ cái (letter), số (number), hay dấu chấm câu (punctuation mark).

Cú pháp so khớp các thuộc tính của kí tự:

  • \p{property} so khớp các kí tự có thuộc tính là property.
  • \P{property} không so khớp các kí tự có thuộc tính property.

Một danh sách dài các thuộc tính (property) của kí tự như sau:

Minh hoạ trong Rubular (rubular.com) với đoạn văn bản mẫu sau:


1 2 3

Freude, schöner Götterfunken,

Tochter aus Elisium,

Wir betreten feuertrunken

Himmlische, dein Heiligthum.

\p{N} để so khớp các kí tự là số, kết quả:

\P{N} để không so khớp với các kí tự là số:

\p{Lu} để so khớp các kí tự viết hoa:

\p{Po} dùng để so khớp các dấu câu (như phẩy, chấm, v.v.):

So khớp các kí tự điều khiển (cotrol characters)

Cú pháp dùng để xác định một kí tự là kí tự điều khiển là

\cx, với x là kí tự điều khiển muốn so khớp.

Ví dụ \c@ dùng để tìm một kí tự null trong một tập tin.