ความรู้เบื้องต้นเกี่ยวกับ Regular Expressions ใน PHP
Regular Expressions คือคำสั่ง สำหรับการค้นหาและแทนที่ที่ซับซ้อน พวกมันอนุญาตให้ ทำสิ่งที่น่าสนใจมากมาย แต่เสียดายที่ ค่อนข้างยากที่จะเรียนรู้
มีฟังก์ชัน PHP หลายฟังก์ชันสำหรับทำงาน
กับ Regular Expressions เราจะเริ่มทำความรู้จัก
กับพวกมันโดยใช้ตัวอย่าง preg_replace ฟังก์ชันนี้
รับพารามิเตอร์แรกว่าต้องการแทนที่อะไร
และพารามิเตอร์ที่สอง - ด้วยอะไร และพารามิเตอร์ที่สาม
- สตริงที่ต้องการดำเนินการแทนที่:
<?php
preg_replace(สิ่งที่ต้องการแทนที่, สิ่งที่ต้องการแทนที่ด้วย, สตริง);
?>
ทั้งนี้พารามิเตอร์แรกฟังก์ชันของเราไม่รับแค่
สตริงธรรมดา แต่รับ regular expression
ซึ่งเป็นสตริงที่มีชุดคำสั่ง
อยู่ภายในตัวอักษรเครื่องหมายตาราง #
เครื่องหมายตารางเหล่านี้เรียกว่า ตัวคั่น
ของ regular expressions
หลังจากตัวคั่นสามารถเขียน modifiers ได้ - ซึ่งเป็นคำสั่งที่ปรับเปลี่ยนคุณสมบัติทั่วไป ของ regular expression
regular expressions เองประกอบด้วยสัญลักษณ์สอง ประเภท: ประเภทที่แทนตัวมันเอง และสัญลักษณ์คำสั่ง ซึ่งเรียกว่า อักขระพิเศษ
ตัวอักษรและตัวเลขแทนตัวมันเอง ในตัวอย่างต่อไปนี้
เราจะใช้ regular expression
แทนที่ตัวอักษร 'a' ด้วย '!':
<?php
preg_replace('#a#', '!', 'bab'); // จะคืนค่า 'b!b'
?>
แต่จุด (.) เป็นอักขระพิเศษ
และหมายถึง อักขระใดก็ได้ ในตัวอย่างต่อไปนี้
เราจะค้นหาสตริงตามรูปแบบนี้:
ตัวอักษร 'x' ตามด้วยอักขระใดก็ได้ ตามด้วย
ตัวอักษร 'x' อีกครั้ง:
<?php
preg_replace('#x.x#', '!', 'xax eee'); // จะคืนค่า '! eee'
?>
กำหนดสตริง:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
เขียน regular expression ที่จะค้นพบสตริง
'ahb', 'acb', 'aeb'
ตามรูปแบบ: ตัวอักษร 'a', อักขระใดก็ได้,
ตัวอักษร 'b'
กำหนดสตริง:
<?php
$str = 'ahb acb aeb aeeb adcb axeb';
?>
เขียน regular expression ที่จะค้นพบสตริง
'aeeb', 'adcb', 'axeb'
ตามรูปแบบ: ตัวอักษร 'a', สองอักขระใดก็ได้
, ตัวอักษร 'b'