Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Raw String Notation ใน Python Regular Expression คืออะไร

Raw String Notation

ตามเอกสาร Python raw string notation r"text" ทำให้ regular expressions meaningful และไม่สับสน โดยไม่มี raw string ทุก backslash \ ใน regex จะต้อง escape ด้วย backslash อีกตัว ตัวอย่าง 2 บรรทัดนี้ทำงานเหมือนกัน:

>> re.match(r"\W(.)\1\W", " ff ")
<_sre.SRE_Match object; span=(0, 4), match=' ff '>
>>> re.match("\\W(.)\\1\\W", " ff ")
<_sre.SRE_Match object; span=(0, 4), match=' ff '>

ต้องการจับคู่ literal backslash ต้อง escape ใน regex ด้วย raw string คือ r"\\" โดยไม่มี raw string ต้องใช้ "\\\\" ทำให้ 2 บรรทัดนี้เหมือนกัน:

>> re.match(r"\\", r"\\")
<_sre.SRE_Match object; span=(0, 1), match='\\'>
>>> re.match("\\\\", r"\\")
<_sre.SRE_Match object; span=(0, 1), match='\\'>