การกลับชุดตัวอักษรในเร็กเอ็กซ์
การใช้เครื่องหมายหมวก ^ ที่จุดเริ่มต้นของวงเล็บเหลี่ยมช่วยให้คุณสามารถกลับค่าที่ต้องการได้ นั่นคือ ถ้าคำสั่งเช่น [ab] ค้นหาตัวอักษร 'a' หรือ 'b' ดังนั้นคำสั่ง [^ab] จะค้นหาทุกอักขระยกเว้น 'a' และ 'b'
ตัวอย่าง
ในตัวอย่างนี้ แบบแผนการค้นหามีลักษณะดังนี้:
ตัวอักษร 'x' ตามด้วยตัวอักษรที่ไม่ใช่ 'a' ไม่ใช่ 'b' และไม่ใช่ 'c' จากนั้นจึงเป็นตัวอักษร 'z':
<?php
$str = 'xaz xbz xcz xez';
$res = preg_replace('#x[^abc]z#', '!', $str);
?>
ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรจะเป็นดังนี้:
'xaz xbz xcz !'
ตัวอย่าง
ในตัวอย่างนี้ แบบแผนการค้นหามีลักษณะดังนี้:
ตัวอักษร 'x' ตามด้วยตัวอักษรที่ไม่ใช่ตัวพิมพ์เล็กละติน จากนั้นจึงเป็นตัวอักษร 'z':
<?php
$str = 'xaz xbz x1z xCz';
$res = preg_replace('#x[^a-z]z#', '!', $str);
?>
ผลลัพธ์ที่ถูกบันทึกลงในตัวแปรจะเป็นดังนี้:
'xaz xbz ! !'
โจทย์ฝึกปฏิบัติ
เขียนนิพจน์ทั่วไปที่ค้นหาสตริงตามแบบแผน: ตัวเลข '1' ตามด้วยอักขระที่ไม่ใช่ 'e' และไม่ใช่ 'x' จากนั้นจึงเป็นตัวเลข '2'
เขียนนิพจน์ทั่วไปที่ค้นหาสตริงตามแบบแผน: ตัวอักษร 'x' ตามด้วยอักขระที่ไม่ใช่ตัวเลขตั้งแต่ 2 ถึง 7 จากนั้นจึงเป็นตัวอักษร 'z'
เขียนนิพจน์ทั่วไปที่ค้นหาสตริงตามแบบแผน: ตัวอักษร 'x' ตามด้วยอักขระที่ไม่ใช่ตัวพิมพ์ใหญ่ละตินตั้งแต่ 1 ครั้งขึ้นไป จากนั้นจึงเป็นตัวอักษร 'z'
เขียนนิพจน์ทั่วไปที่ค้นหาสตริงตามแบบแผน: ตัวอักษร 'x' ตามด้วยอักขระที่ไม่ใช่ตัวพิมพ์ใหญ่ละติน ไม่ใช่ตัวพิมพ์เล็กละติน และไม่ใช่ตัวเลขตั้งแต่ 1 ถึง 5 ตั้งแต่ 1 ครั้งขึ้นไป จากนั้นจึงเป็นตัวอักษร 'z'