สัญกรณ์สตริงดิบ
ตามเอกสารของ Python สัญกรณ์สตริงแบบ raw (r"text") ช่วยให้นิพจน์ทั่วไปมีความหมายและปราศจากความสับสน หากไม่มี แบ็กสแลช ('\') ทุกตัวในนิพจน์ทั่วไปจะต้องนำหน้าด้วยอีกอันหนึ่งเพื่อหลีกเลี่ยง ตัวอย่างเช่น โค้ดสองบรรทัดต่อไปนี้มีฟังก์ชันเหมือนกัน −
>>> 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 '>
เมื่อต้องการจับคู่แบ็กสแลชตามตัวอักษร จะต้องหลีกเลี่ยงในนิพจน์ทั่วไป ด้วยสัญกรณ์สตริงแบบ raw นี่หมายถึง r"\\" หากไม่มีสัญกรณ์สตริงดิบ เราต้องใช้ "\\\\" ทำให้บรรทัดของโค้ดต่อไปนี้ทำงานเหมือนกัน -
>>> re.match(r"\\", r"\\") <_sre.SRE_Match object; span=(0, 1), match='\\'> >>> re.match("\\\\", r"\\") <_sre.SRE_Match object; span=(0, 1), match='\\'>