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

Giải thích cấu trúc phân nhóm C # trong biểu thức chính quy

Có nhiều danh mục ký tự, toán tử và cấu trúc khác nhau cho phép bạn xác định các biểu thức chính quy.

Một trong số đó là Cấu trúc Nhóm. Cấu trúc nhóm mô tả các biểu thức con của một biểu thức chính quy và bắt các chuỗi con của một chuỗi đầu vào. Bảng sau liệt kê các cấu trúc nhóm.

Cấu trúc nhóm Mô tả Mẫu Đối sánh
(biểu thức con) Chụp biểu thức con phù hợp và gán cho nó một số thứ tự dựa trên số không. (\ w) \ 1 "ee" trong "sâu"
(? biểu thức con) Chụp biểu thức con phù hợp vào một nhóm có tên. (? \ w) \ k "ee" trong "sâu"
(? biểu thức con) Xác định định nghĩa nhóm cân bằng. (((? 'Open' \ () [^ \ (\)] *) + ((? 'Close-Open' \)) [^ \ (\)] *) +) * (? (Mở ) (?!)) $ "((1-3) * (3-1))" trong "3 + 2 ^ ((1-3) * (3-1))"
(?:biểu thức con) Xác định nhóm không lưu trữ. Viết (?:Dòng)? "WriteLine" trong "Console.WriteLine ()"
(? imnsx-imnsx:subexpression) Áp dụng hoặc tắt các tùy chọn được chỉ định trong biểu thức con A \ d {2} (? i:\ w +) \ b "A12xl", "A12XL" trong "A12xl A12XL a12xl"
(? =subexpression) Xác nhận trên trang đầu tìm kiếm khẳng định có độ rộng bằng không. \ w + (? =\.) "is", "ran" và "out" trong "Anh ta rồi. Con chó chạy rồi. Mặt trời tắt."
(?! biểu thức con) Xác nhận tiêu cực phủ định 0 độ rộng. \ b (?! un) \ w + \ b "chắc chắn", "đã sử dụng" trong "không chắc chắn chắc chắn đã sử dụng thống nhất"
(? <=subexpression) Xác nhận lookbehind dương không độ rộng. (? <=19) \ d {2} \ b "51", "03" trong "1851 1999 1950 1905 2003"
(? Xác nhận phía sau cái nhìn phủ định có độ rộng bằng không. (? "end", "ender" trong "end gửi người cho vay cuối cùng"
(?> biểu thức con) Biểu thức con không theo dõi (hoặc "tham lam"). [13579] (?> A + B +) "1ABB", "3ABB" và "5AB" trong "1ABB 3ABBC 5AB 5AC"