Computer >> Máy Tính >  >> Lập trình >> Python

Các siêu ký tự bên trong các lớp ký tự được sử dụng trong biểu thức chính quy Python là gì?


Hầu hết các chữ cái và ký tự chỉ khớp với nhau. Tuy nhiên, có một số ký tự được gọi là siêu ký tự không khớp với chính chúng. Thay vào đó, chúng chỉ ra rằng một số mẫu phải được khớp hoặc chúng lặp lại hoặc thay đổi các phần của biểu thức chính quy.

Đây là danh sách đầy đủ các siêu ký tự

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

Đầu tiên, chúng ta sẽ xem xét [và]. Chúng được sử dụng để chỉ ra một lớp ký tự, là một tập hợp các ký tự mà bạn muốn đối sánh. Các ký tự có thể được liệt kê riêng lẻ hoặc một loạt các ký tự có thể được chỉ định bằng cách cho hai ký tự và phân tách chúng bằng dấu '-'. Ví dụ:[xyz] sẽ khớp với bất kỳ ký tự nào trong số các ký tự x, y hoặc z; điều này giống với [x-z], sử dụng một phạm vi để thể hiện cùng một bộ ký tự. Nếu bạn chỉ muốn đối sánh các chữ cái thường, thì regex của bạn sẽ là [a-z].

Metacharacters không hoạt động bên trong các lớp. Ví dụ:[abc $] sẽ khớp với bất kỳ ký tự nào trong số các ký tự 'a', 'b', 'c' hoặc '$'; '$' là một siêu ký tự, nhưng bên trong một lớp ký tự, nó bị tước đi tính chất đặc biệt của nó.

Nếu có '^' là ký tự đầu tiên của một lớp, điều đó có nghĩa là tất cả những ký tự KHÔNG thuộc lớp này; Ví dụ:[^ 8] sẽ khớp với bất kỳ ký tự nào ngoại trừ '8'.

Có lẽ ký tự siêu quan trọng nhất là dấu gạch chéo ngược, \. Nó cũng được sử dụng để thoát khỏi tất cả các siêu ký tự để bạn vẫn có thể đối sánh chúng theo các mẫu; ví dụ:nếu bạn cần so khớp với một] hoặc \, bạn có thể đặt trước chúng bằng dấu gạch chéo ngược để loại bỏ ý nghĩa đặc biệt của chúng:\] hoặc \\.