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

“?:” có nghĩa là gì trong biểu thức chính quy Python?

Nhóm không chụp

Nếu chúng ta không muốn một nhóm nắm bắt được đối sánh của nó, chúng ta có thể viết biểu thức chính quy này dưới dạng Set (?:Value). Dấu chấm hỏi và dấu hai chấm sau ngoặc mở là cú pháp tạo nhóm không bắt.

Tập hợp regex (Giá trị)? khớp với Set hoặc SetValue. Trong trường hợp đầu tiên, nhóm chụp đầu tiên (và duy nhất) vẫn trống. Trong trường hợp thứ hai, nhóm thu thập đầu tiên khớp với Giá trị. Dấu hỏi xuất hiện ở cuối là bộ định lượng làm cho mã thông báo trước đó là tùy chọn.

Set (?:Value) khớp với Setxxxxx, tức là tất cả các chuỗi đó bắt đầu bằng Set nhưng không theo sau bởi Giá trị. Đó sẽ là những nhóm không bắt giữ.

color =(?:red | green | blue) là một regex khác với nhóm không chụp. Regex này không có bộ định lượng.

Các phiên bản Regex hỗ trợ tính năng chụp có tên thường có tùy chọn để chuyển tất cả các nhóm không có tên thành nhóm không chụp.