ชุดอักขระในนิพจน์ทั่วไปของ PHP
กลุ่มอักขระ \d และ \w ไม่
ยืดหยุ่นมากนัก แม้แต่งานง่าย ๆ
เช่น ค้นหาตัวอักษรทั้งหมด แต่ไม่ใช่ตัวเลข -
ก็ไม่สามารถแก้ไขได้ด้วยกลุ่มเหล่านั้น สำหรับงานดังกล่าว
ควรใช้วงเล็บเหลี่ยม ซึ่งแทน
ตัวดำเนินการ OR
วงเล็บเหลี่ยมแทนที่อักขระเดียว
ใด ๆ ที่ระบุไว้ภายใน ตัวอย่างเช่น
เช่นนี้: #x[abc]x# - เรากล่าวว่า
ที่ขอบทั้งสองด้านต้องเป็นตัวอักษร x และภายใน
- เป็นอักขระเดียว: ไม่ว่า 'a', 'b',
หรือ 'c'
หลังวงเล็บเหลี่ยมสามารถเขียนตัวดำเนินการ
การทำซ้ำได้ ตัวอย่างเช่น เช่นนี้: #x[abc]+x#
- เรากล่าวว่าภายใน x สามารถมี
อักขระ 'a', 'b'
และ 'c' จำนวนเท่าใดก็ได้ - ในชุดผสมใด ๆ
ไม่เพียงแต่สามารถระบุอักขระได้ แต่ยังสามารถสร้าง
กลุ่มอักขระได้ โดยเขียนระหว่างอักขระสองตัว
ด้วยเครื่องหมายยัติภังค์ ตัวอย่างเช่น เช่นนี้: #[a-d]#
- เราได้รับอักขระทั้งหมดตั้งแต่ 'a' ถึง
'd'
เรามาดูตัวอย่างกัน
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวอักษรใด ๆ ตั้งแต่ 'a'
ถึง 'z':
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'! ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวอักษรใด ๆ ตั้งแต่ 'a'
ถึง 'k':
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'! ! xmx x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวอักษรใด ๆ ตั้งแต่ 'A'
ถึง 'Z':
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'xax ! xcx x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวเลขใด ๆ ตั้งแต่ 0 ถึง 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'xax ! ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวเลขใด ๆ ตั้งแต่ 3 ถึง 7:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'xax x1x ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวอักษรใด ๆ ตั้งแต่ 'a'
ถึง 'z' หรือตัวเลขตั้งแต่ 1 ถึง 9:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'! ! ! ! x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวอักษรใด ๆ ตั้งแต่ 'a'
ถึง 'z' หรือตัวอักษรตั้งแต่ 'A' ถึง
'Z':
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'! ! ! x5x x@x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวอักษรใด ๆ ตั้งแต่ 'a'
ถึง 'z' หรือตัวเลข 1, 2:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'! ! ! ! x3x'
ตัวอย่าง
ในตัวอย่างนี้ รูปแบบการค้นหามีลักษณะดังนี้:
ระหว่าง x เป็นตัวอักษรตั้งแต่ 'a' ถึง 'z'
จำนวนตั้งแต่ 1 ขึ้นไป:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'xx ! ! ! x123x xa3x'
ตัวอย่าง
เรามาทำให้จำนวนตัวอักษรสามารถ เป็นศูนย์ได้:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:
'! ! ! x123x xa3x'
แบบฝึกหัด
กำหนดสตริง:
<?php
$str = 'aba aea aca aza axa';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษร 'b',
'e' หรือ 'x'
กำหนดสตริง:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวเลขตั้งแต่ 3 ถึง 6
กำหนดสตริง:
<?php
$str = 'aba aea afa aha aga';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรตั้งแต่ a ถึง g
กำหนดสตริง:
<?php
$str = 'aba aea afa aha aga';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรตั้งแต่ a ถึง f และจาก j ถึง z
กำหนดสตริง:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรตั้งแต่ a ถึง f และจาก A ถึง D
กำหนดสตริง:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก,
โดยไม่กระทบกับส่วนอื่น
กำหนดสตริง:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและพิมพ์ใหญ่, โดยไม่กระทบกับส่วนอื่น
กำหนดสตริง:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
เขียนนิพจน์ทั่วไปที่ค้นหาตาม
รูปแบบต่อไปนี้: ที่ขอบเป็นตัวอักษร 'a',
และระหว่างพวกมันคือตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก
และตัวเลข, โดยไม่กระทบกับส่วนอื่น