การหลีกเลี่ยงตัวแบ่งเขตใน PHP
หากอักขระไม่ใช่ตัวอักขระพิเศษ เมื่อคุณใช้มันเป็นตัวแบ่งเขต จะต้องทำการหลีกเลี่ยงมันในนิพจน์ทั่วไปเอง มาดูตัวอย่างกัน
สมมติว่าตัวแบ่งเขตของเราคือเครื่องหมายแฮช และภายในนิพจน์ทั่วไปเราต้องการค้นหาอักขระ แอมเพอร์แซนด์ เนื่องจากแอมเพอร์แซนด์ไม่ใช่ อักขระพิเศษ เราจึงไม่ต้องหลีกเลี่ยงมัน:
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // แสดงผล '!'
?>
สมมติว่าตอนนี้ตัวแบ่งเขตคือแอมเพอร์แซนด์และ ภายในนิพจน์ทั่วไปเราต้องการแอมเพอร์แซนด์ด้วย ในกรณีนี้ แอมเพอร์แซนด์ภายในจะต้อง ทำการหลีกเลี่ยง มิฉะนั้นจะทำให้เกิดข้อผิดพลาดใน PHP:
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // แสดงผล '!'
?>
แก้ไขข้อผิดพลาดที่เกิดขึ้นในโค้ดต่อไปนี้:
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>