Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

อธิบายโครงสร้างการจัดกลุ่ม C # ในนิพจน์ทั่วไป


มีอักขระ ตัวดำเนินการ และโครงสร้างหลายประเภทที่ให้คุณกำหนดนิพจน์ทั่วไปได้

หนึ่งในนั้นคือการจัดกลุ่มโครงสร้าง โครงสร้างการจัดกลุ่มอธิบายนิพจน์ย่อยของนิพจน์ทั่วไปและจับสตริงย่อยของสตริงอินพุต ตารางต่อไปนี้แสดงรายการโครงสร้างการจัดกลุ่ม

การจัดกลุ่ม คำอธิบาย รูปแบบ ตรงกัน
( นิพจน์ย่อย ) จับนิพจน์ย่อยที่ตรงกันและกำหนดเป็นเลขลำดับแบบอิงศูนย์ (\w)\1 "ee" ใน "ลึก"
(?<ชื่อ>นิพจน์ย่อย) จับนิพจน์ย่อยที่ตรงกันในกลุ่มที่มีชื่อ (?\w)\k "ee" ใน "ลึก"
(?นิพจน์ย่อย) กำหนดคำจำกัดความของกลุ่มที่สมดุล (((?'Open'\()[^\(\)]*)+((?'Close-Open'\))[^\(\)]*)+)*(?(เปิด )(?!))$ "((1-3)*(3-1))" ใน "3+2^((1-3)*(3-1))"
(?:นิพจน์ย่อย) กำหนดกลุ่มที่ไม่จับ เขียน(?:Line)? "WriteLine" ใน "Console.WriteLine()"
(?imnsx-imnsx:subexpression) ใช้หรือปิดใช้งานตัวเลือกที่ระบุภายใน นิพจน์ย่อย A\d{2}(?i:\w+)\b "A12xl", "A12XL" ใน "A12xl A12XL a12xl"
(?=นิพจน์ย่อย) การยืนยันการมองไปข้างหน้าแบบไม่มีความกว้าง \w+(?=\.) "is", "ran" และ "out" ใน "He is. The dog ran. The sun is out."
(?! นิพจน์ย่อย) การยืนยันการมองไปข้างหน้าเชิงลบที่มีความกว้างเป็นศูนย์ \b(?!un)\w+\b "แน่ใจ", "ใช้แล้ว" ใน "ไม่แน่ใจว่าใช้ความสามัคคี"
(?<=subexpression) การมองหลังการยืนยันแบบไม่มีความกว้างเป็นศูนย์ (?<=19)\d{2}\b "51", "03" ใน "1851 1999 1950 1905 2003"
(? การมองหลังการยืนยันเชิงลบที่มีความกว้างเป็นศูนย์ (? "ends", "ender" ใน "end ส่งผู้ให้ยืม"
(?> นิพจน์ย่อย) นิพจน์ย่อยไม่ติดตาม (หรือ "โลภ") [13579](?>A+B+) "1ABB", "3ABB" และ "5AB" ใน "1ABB 3ABBC 5AB 5AC"