Jun 17, 2008

บทที่ 37 Regular Expression

Regular Expression หรือเรียกย่อๆว่า Regex
หมายถึง รูปแบบของลำดับ หรือกลุ่มของสัญลักษณ์ ที่ใช้แทน
ลำดับ หรือกลุ่มของอักขระตามที่ต้องการ
เราใช้สัญลักษณ์ [ ] (square brackets)

เพื่อกำหนดขอบเขตของกลุ่มตัวอักขระหลายตัวที่ใช้เป็น
ตัวเลือก เช่น สมมุติว่า เราต้องการจะเขียนรูปแบบที่ใช้แทน
ตัวอักขระหนึ่งตัว อะไรก็ได้จาก {a,e,i,o,u} เราก็จะ
เขียนว่า [aeiou] โดยจะเรียงลำดับก่อนหลังอย่างไรก็ได้
เช่น [eioua] ให้ผลเหมือนกับ [aeoui] หรือ ถ้าเรา
ต้องการเขียน รูปแบบเพื่อใช้แทนตัวขระหนึ่งตัวที่เป็นตัวเลข
ตัวใดตัวหนึ่งจาก 0 ถึง 9 เราก็เขียนว่า [0123456789]
หรือจะเขียนแบบสั้นๆใหม่ได้เป็น [0-9] หรืออีกตัวอย่างหนึ่ง
ถ้าเราต้องการจะเขียนนิพจน์แบบ regex ขึ้นมา เพื่อใช้แทน
อักขระตัวใดตัวหนึ่งที่เป็นได้ทั้งตัวพิมพ์ใหญ่หรือเล็กในภาษา
อังกฤษหรือตัวเลขระหว่าง 0 ถึง 9 เราก็เขียนว่า
[A-Za-z0-9]



ถ้าเรามีข้อความแล้วเราต้องการจะค้นหาอักขระหรือลำดับของอักขระ
(หรือ pattern) ในข้อความเรานั้น เราเรียกขั้นตอนในการค้นหา
ตามรูปแบบนี้ว่า pattern matching ในภาษา PHP จะมี
ฟังก์ชันที่เราใช้ในการค้นหาลำดับของตัวอักขระตามแบบที่ต้องการ
คือ ereg() และ eregi() และต่างกันตรงที่ว่า ฟังก์ชัน eregi()
จะเปรียบเทียบโดยไม่คำนึงถึงเรื่องตัวพิมพ์เล็กหรือใหญ่
ตัวอย่างเช่น สมมุติว่า เรามีข้อความอยู่ในอาร์เรย์เป็นข้อความที่มีแค่

ตัวอักขระตัวเดียว แล้วเราต้องการจะหาว่า ตัวไหนบ้างที่เป็นตัวเลข
0 ถึง 9 บ้างและตัวไหนบ้างที่เป็นตัวพิมพ์ภาษาอังกฤษ a, b,
หรือ c เราก็เขียนสคริปต์โดยใช้ฟังก์ชัน ereg() ได้ดังนี้


จาก ชมรมเว็บเพจไทย

No comments: