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

จะหลีกเลี่ยงอักขระพิเศษใด ๆ ในนิพจน์ปกติของ Python ได้อย่างไร


นิพจน์ทั่วไปใช้อักขระแบ็กสแลช ('\') เพื่อระบุรูปแบบพิเศษหรืออนุญาตให้ใช้อักขระพิเศษโดยไม่ใช้ความหมายพิเศษ สิ่งนี้ขัดแย้งกับการใช้อักขระตัวเดียวกันของ Python เพื่อจุดประสงค์เดียวกันในตัวอักษรสตริง ตัวอย่างเช่น หากต้องการจับคู่แบ็กสแลชตามตัวอักษร เราอาจต้องเขียน '\\\\' เป็นสตริงรูปแบบ เนื่องจากนิพจน์ทั่วไปต้องเป็น \\ และแบ็กสแลชแต่ละรายการต้องแสดงเป็น \\ ภายในสตริงตามตัวอักษรของ Python ปกติ

วิธีแก้ไขคือใช้สัญลักษณ์สตริงดิบของ Python สำหรับรูปแบบนิพจน์ทั่วไป แบ็กสแลชจะไม่ได้รับการจัดการในลักษณะพิเศษใดๆ ในสตริงตามตัวอักษรที่นำหน้าด้วย 'r' ดังนั้น r"\n" จึงเป็นสตริงสองอักขระที่มี '\' และ 'n' ในขณะที่ "\n" เป็นสตริงที่มีอักขระหนึ่งตัวที่มีการขึ้นบรรทัดใหม่ โดยปกติรูปแบบจะแสดงเป็นโค้ด Python โดยใช้สัญกรณ์สตริงดิบนี้