วันพฤหัสบดีที่ 18 กันยายน พ.ศ. 2551

ทำความเข้าใจกับ Regular Expression ตอนที่ 2

สำหรับครั้งนี้เราจะมาเรียนรู้และทำความเข้าใจกับสัญลักษณ์ต่างของ Regular Expression กันต่อนะครับ

----------------------------------------------------------------
5.การกำหนด "ให้ต้องมีตัวอักษรที่กำหนด อย่างน้อย 1 ตัว"

เราจะใช้เครื่องหมาย "+" ตามหลังตัวอักษรหรือคำ ที่เราต้องการใช้ในการค้นหาในประโยคนั้นๆ เช่น
echo ereg("+", "วิธีการทำงาน");
?>

***จะได้ค่า return กลับมาเป็น True เนื่องจากในประโยคที่เราค้นหามี "ก" อยู่นั่นเอง

----------------------------------------------------------------
6.การตรวจสอบช่องว่าง

ในการตรวจสอบช่องว่างนั้นจะใช้ "[[:space:]]" หรือ " "" " เพื่อตรวจสอบ แต่การใช้ ":space:" นั้น จะรวมถึงเครื่องหมายอื่นๆด้วย เช่น เครื่องหมายเว้นวรรค,tab และ เครื่องหมายขึ้นบรรทัดใหม่

ตัวอย่างการตรวจสอบ เช่น
echo ereg("ทองจุล[[:space:]]ขันขาว", "ทองจุล ขันขาว");
?>

***จะได้ค่า return กลับมาเป็น True

----------------------------------------------------------------
7.การตรวจสอบเป็นช่วง

เราจะใช้เครื่องหมาย "[]" คร่อมระหว่างกลุ่มของตัวอักษรที่เราต้องการนำไปตรวจสอบในประโยคนั้นๆ
ตัวอย่างของการกำหนดช่วงตรวจสอบ ได้แก่
- [ก-๙] - ตัวอักษรไทยรวมทั้งสระด้วย ถ้าระบุ [ก-ฮ] จะไม่มีสระ
- [a-zA-Z] - ตัวอักษรอังกฤษทั้งตัวใหญ่ตัวเล็ก ถ้าต้องการอย่างใดอย่างหนึ่งให้ระบุดังนี้ [a-z]หรือ[A-Z]
- [0-9๐-๙] - ตัวเลขทั้งไทยและอังกฤษ
เป็นต้น ซึ่งเราสามารถกำหนดได้เองตามความต้องการ

สำหรับการนำไปใช้ เช่น

// กำหนดให้มีเฉพาะตัวอักษรภาษาไทยเท่านั้น มีตัวเลขที่เป็นภาษาไทยได้ แต่ห้ามมีตัวอักษรภาษาอังกฤษ


echo ereg("^[ก-๙]+$", "ทองจุล๐๑๒๓"); // ให้ค่าที่เป็นจริง

?>

----------------------------------------------------------------
8.การจัดกลุ่มคำ หรือ ข้อความ

ถ้าต้องการจัดกลุ่มคำหรือข้อความให้ใช้เครื่องหมาย "()" คร่อม เช่น
echo ereg("^(ทองจุล|ปรีชา).+$", "ปรีชา สุขเกษม");
?>

***เครื่องหมาย "|" หมายความว่า อย่างใดอย่างหนึ่ง ดังนั้นจะได้ค่า return กลับมาเป็น True
เพราะขึ้นต้น "ปรีชา" และตามด้วยอะไรก็ได้เป็นตัวสุดท้ายอีกหนึ่งตัว คือ "สุขเกษม"


----------------------------------------------------------------
9.การตรวจสอบเครื่องหมาย หรือ สัญลักษณ์พิเศษ

สัญลักษณ์พิเศษที่ต้อง escape มีดังนี้ ^, $, (, ), ., [, |, *, ?, +, \, และ {

เราจะใช้เครื่องหมาย "\" นำหน้าสัญลักษณ์พิเศษ ที่ต้องการค้นหาในประโยคนั้นๆ เช่น
echo ereg("^(ทองจุล|ปรีชา).\*$", "ปรีชา สุขเกษม*");
?>

***จะได้ค่า return กลับมาเป็น True

----------------------------------------------------------------
ที่มา : http://www.thaijobmarket.com/regularex.html

ไม่มีความคิดเห็น: