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

ทำความเข้าใจกับ Regular Expression

ครั้งที่แล้วเราได้เห็นแล้วว่าประโยชน์จากการใช้ Regular Expression ในการตรวจสอบรูปแบบ E-mail กันแล้ว ครั้งนี้เราจะมาทำความเข้าใจในตัว Regular Expression กันบ้างว่ามีหลักการเขียนอย่างไร รวมถึงสัญลักษณ์ต่างๆว่ามีความหมายอย่างไร

-----------------------------------------------------------------
รูปแบบของ Regular Expression ที่ควรรู้

1.การกำหนดว่า "ต้องเป็นตัวแรกของข้อความ"

เราจะใช้เครื่องหมาย "^" นำหน้าคำที่เราต้องการกำหนดให้เป็นตัวแรกที่เราต้องการหาในข้อความนั้นๆ เช่น
echo ereg("^ความ", "ความดีของคน");
?>

***ถ้าข้อความไหนขึ้นต้นด้วยคำว่า "ความ" ค่าที่ return กลับมาจะเป็น True

-----------------------------------------------------------------
2.การกำหนดว่า "ต้องเป็นตัวสุดท้ายของข้อความ"

เราจะใช้เครื่องหมาย "$" ตามหลังคำที่เราต้องการกำหนดให้เป็นตัวสุดท้ายที่เราต้องการหาในข้อความนั้นๆ เช่น
echo ereg("ความ$", "คนไม่ได้ความ");
?>

***ถ้าข้อความไหนลงท้ายด้วยคำว่า "ความ" ค่าที่ return กลับมาจะเป็น True

-----------------------------------------------------------------
3.การค้นหาตัวอักษร

เราจะใช้เครื่องหมาย "." เพื่อใช้แทนตัวอักษรหรือตัวเลขใดก็ได้ ที่ไม่ใช่ช่องว่าง ในการระบุว่าต้องมีตัวอักษร เช่น
echo ereg("ก.ข", "ก8ข");
?>
***ค่าที่ return กลับมาจะเป็น True เนื่องจากข้อความมี "ก" แล้วตามด้วย "." ซึ่งในข้อความคือเลข "8" แล้วก็ตามด้วยตัวสุดท้ายคือ "ข" โดยตรงตามรูปแบบที่เราได้กำหนดไว้นั่นเอง

-----------------------------------------------------------------
4.การกำหนดว่า "อาจจะมีตัวอักษรที่กำหนดหรือไม่ก็ได้"

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

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

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

บางคนอาจจะนึกถามอยู่ในใจว่า แล้วมันมีประโยชน์อย่างไร เพราะมีก็ได้ ไม่มีก็ได้ ไม่เห็นจะแตกต่างอะไรเลย ก็ต้องขอบอกว่า มันมีประโยชน์ตรงที่เราสามารถกำหนดทางเลือกได้ เช่น

"เราจะตรวจสอบการป้อนข้อมูลตัวเลขว่าผู้ใช้โปรแกรมป้อนเข้ามาถูกหรือไม่ เรารู้ว่าตัวเลขสามารถพิมพ์ได้หลายแบบ บางทีก็มีเครื่องหมายคอมม่าหลังหลักพัน บางทีก็ไม่มี ซึ่งถูกทั้งสองรูปแบบ อย่างนี้ เราก็กำหนดให้เครื่องหมายคอมม่า มีก็ได้ไม่มีก็ได้ ถูกทั้งสองอย่าง เราก็ใช้เครื่องหมายนี้กำกับไว้ข้างหลังเครื่องหมายคอมม่าเสียนั่นเอง"

-----------------------------------------------------------------
สำหรับครั้งนี้ขอกล่าวถึงเพียงเท่านี้ก่อน ครั้งหน้าเรามาทำความรู้จักในส่วนที่เหลือของ Regular Expression กันต่อนะครับ

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

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