Regular Expressions หรือ regex เป็น เครื่องมือที่มีประโยชน์มากในการเปรียบเทียบตัวอักษร คำ หรือ รูปแบบของข้อความต่างๆ ที่เราต้องการจากข้อความอื่นๆ เมื่อค้นหาได้แล้วเราก็อาจจะแทนที่ด้วยข้อความอื่นๆ ได้
การใช้ regex ไม่ได้มีเฉพาะใน PHP นะครับ อย่างใน Javascript, Perl, VBscript แม้กระทั่งใน MySQL ก็มีเช่นกันครับ
ถ้าคุณต้องการจะใช้ regex ละก็คงหนีไม่พ้นที่จะต้องทำความรู้จักกับ Meta characters เพราะนอกจากเราจะใช้ตัวอักษรและตัวเลขต่างๆ ในการสร้างรูปแบบ (pattern) ของตัวอักษรที่เราต้องการจะค้นหาแล้ว เราสามารถใช้ Meta characters มาช่วยสร้างรูปแบบอื่นๆ ที่มีความซับซ้อนมากขึ้นได้
Meta characters
- \ ใช้เป็น escape character
- ^ ใช้สำหรับกำหนด ตำแหน่งเริ่มต้นของข้อความ เช่น "^PHP" จะตรงกับข้อความที่จะต้องขึ้นต้นด้วย PHP เท่านั้น
- $ ใช้สำหรับกำหนด ตำแหน่งสิ้นสุด เช่น "PHP$" จะตรงกับข้อความที่จะต้องลงท้า่ยด้วย PHP เท่านั้น
- . ใช้สำหรับแทนตัวอักษรใด ๆ 1 ตัวอักษร เช่น "P.P" จะตรงกับ "PHP" แต่จะไม่้ตรงกับ "PHHP" เนื่องจากต้องการตัวอักษรตัวใดก็ได้ที่อยู่ตรงกลาง
- [ เริ่มต้นการกำหนดระดับอักษรที่เป็นไปได้ในเงื่อนไข
- ] สิ้นสุดการกำหนดระดับอักษร
- | เป็นสัญลักษณ์ที่สำหรับเป็นทางเลือก
- ( ใช้สำหรับเริ่มจัดกลุ่มตัวอักษร
- ) ใช้สำหรับสิ้นสุดการจัดกลุ่มตัวอักษร
- ? แทนตัวอักษร แต่จะสามารถปรากฎ หรือไม่ปรากฎก็ได้ 1 ครั้ง
- * แืทนตัวอักษร แต่จะสามารถปรากฎ หรือไม่ปรากฎ ได้หลาย ๆ ครั้ง เช่น "wh*" จะตรงกับ "w" และ "where"
- + แทนตัวอักษร ที่จะต้องปรากฎ 1 ครั้ง หรือปรากฎได้หลายครั้ง เช่น "wh+" จะตรงกับ "where" แต่จะตรงกบ "w"
- { เริ่มตรวจสอบจำนวนตัวอักษร
- } สิ้นสุดการตรวจสอบตัวอักษร
- - ใช้สำหรับระบุช่้วงตัวอักษร ต้องใช้ภายใต้ [] เท่านั้น
การใช้งาน [ และ ]
การ ใช้งาน [ และ ] เป็นการตรวจสอบระดับตัวอักษรที่เป็นไปได้ในเงื่อนไข จะสามารถตรวจสอบได้เพียง 1 ตัวอักษร ตัวอย่าง "[abcde]" จะตรงกับ "a" แต่จะไม่ตรงกับ "f" และ "g"การใช้งาน { และ }
เราสามารถระบุจำนวนของตัวอักษร การใช้งานของ { } สามารถใช้ได้ 3 แบบ คือ- {n} n แทนตัวเลขที่ปรากฎได้ หมายถึงต้องมีตัวอักษรปรากฎเท่ากับจำนวนตัวเลขที่ระบุอยู่ เช่น "{3}" จะต้องมี ตัวอักษรหรือตัวเลขปรากฎ 3 ตัวอักษร ซึ่งจะตรงกับ "are" แต่จะไม่ตรงกับ "were"
- {n,} n แทนตัวเลขที่ปรากฎได้ หมยถึง ต้องมีตัวอักษรปรากฎอยู่ มากกว่าหรือเท่ากับ จำนวนตัวเลขที่ระบุอยู่ เช่น "{3,}" จะต้องมี อักษรปรากฎอยู่อย่างน้อย 3 ตัวอักษร ซึ่งจะตรงกับ "are" และ "were" แต่จะไม่ตรงกับ "do"
- {n,m} n แทนตัวเลขที่ปรากฎได้ m แทนตัวเลขที่ปรากฎได้สูงสุด หมายถึง ต้องมีตัวอักษรปรากฏอยู่อย่างน้อน n ตัว แต่ต้องไม่เกิน m ตัว เช่น "{3,5}" ซึ่งจะตรงกับ "are" และ "where" แต่จะไม่ตรงกับ "do"
0 ความคิดเห็น:
แสดงความคิดเห็น