หมายเหตุ: Examples provided are in Python.
แม้ว่าแนวคิดจะยังคงเหมือนเดิม
'.'
เป็นสัญลักษณ์ที่ตรงกันซึ่งจับคู่กับอักขระใด ๆ ยกเว้นอักขระขึ้นบรรทัดใหม่ (ซึ่งสามารถแทนที่ด้วยre.DOTALL
อาร์กิวเมนต์ใน Python ได้) ดังนั้นมันจะเรียกว่าเป็นสัญลักษณ์การค้นหา
'*'
คือตัวระบุ (กำหนดความถี่ที่องค์ประกอบสามารถเกิดขึ้นได้) สั้นสำหรับ{0}
มันหมายถึง“ จับคู่กับศูนย์หรือมากกว่า” - กลุ่มที่นำหน้าดาวสามารถเกิดขึ้นได้หลายครั้งในข้อความ มันสามารถหายไปอย่างสมบูรณ์หรือซ้ำแล้วซ้ำอีก
'?'
นอกจากนี้ยังมีปริมาณ สั้นสำหรับ{0,1}
หมายความว่า"จับคู่ศูนย์หรือหนึ่งในกลุ่มที่อยู่หน้าเครื่องหมายคำถามนี้" นอกจากนี้ยังสามารถตีความว่าเป็นส่วนหนึ่งก่อนหน้าเครื่องหมายคำถามเป็นตัวเลือก
เช่น:
pattern = re.compile(r'(\d{2}-)?\d{10}')
mobile1 = pattern.search('My number is 91-9999988888')
mobile1.group()
Output: '91-9999988888'
mobile2 = pattern.search('My number is 9999988888')
mobile2.group()
Output: '9999988888'
ในตัวอย่างข้างต้น '?' ระบุว่าตัวเลขสองหลักก่อนหน้าเป็นตัวเลือกพวกเขาอาจไม่เกิดขึ้นหรือเกิดขึ้นมากที่สุดครั้งเดียว
ความแตกต่างระหว่าง '.' และ '?':
'.'
จับคู่ / ยอมรับ / ตรวจสอบอักขระเดี่ยวสำหรับสถานที่ที่ถืออยู่ในนิพจน์ทั่วไป
เช่น:
pattern = re.compile(r'.ot')
pattern.findall('dot will identify both hot and got.')
Output: ['dot', 'hot', 'got']
'?'
การแข่งขัน / สามารถตรวจสอบศูนย์หรือเกิดขึ้นเพียงครั้งเดียวของกลุ่มก่อนหน้านั้น
ตรวจสอบตัวอย่างหมายเลขโทรศัพท์มือถือ
'*'
กันไปด้วย มันจะตรวจสอบเหตุการณ์ที่เกิดขึ้นเป็นศูนย์หรือมากกว่าของกลุ่มก่อนหน้านี้
รวม:
'.*'
: ยอมรับลำดับได้มากเท่าที่มีอยู่ วิธีโลภ
'.*?
'ยอมรับลำดับและหยุดที่ตรงกันก่อน วิธีการไม่โลภ
สำหรับข้อมูลเพิ่มเติมลองอ่านคำถามสองข้อต่อไปนี้ ...