200 likes | 347 Views
REGULAR EXPRESSION FUNCTION. REGULAR EXPRESSION FUNCTION. ในภาษา PHP ได้เตรียมฟังก์ชันเพื่อเพิ่มความสามารถในการค้นหาตัวอักษรหรือกลุ่มคำในข้อความ โดยสามารถที่จะกำหนดเงื่อนไข(ตัวเลือก)ในการค้นหาได้ ทั้งนี้ต้องมีความเข้าใจในรูปแบบ และสัญลักษณ์ที่ใช้ในการค้นหา.
E N D
REGULAR EXPRESSION FUNCTION ในภาษา PHP ได้เตรียมฟังก์ชันเพื่อเพิ่มความสามารถในการค้นหาตัวอักษรหรือกลุ่มคำในข้อความ โดยสามารถที่จะกำหนดเงื่อนไข(ตัวเลือก)ในการค้นหาได้ ทั้งนี้ต้องมีความเข้าใจในรูปแบบ และสัญลักษณ์ที่ใช้ในการค้นหา
สัญลักษณ์ที่ใช้กำหนดตัวเลือกสัญลักษณ์ที่ใช้กำหนดตัวเลือก สัญลักษณ์ที่ใช้ในการกำหนดตัวเลือกในการค้นหา ของ Regular Expression . แทนตัวอักษรใดก็ได้ […] ใช้ครอบกลุ่มตัวอักษรหรือกลุ่มของคำที่ต้องการให้มีใน ข้อความ [^…] ใช้ครอบกลุ่มของตัวอักษรหรือกลุ่มของคำที่ไม่ต้องการให้ มีในข้อความ ^ ใช้กำหนดตำแหน่งเริ่มต้นของข้อความ $ ใช้กำหนดตำแหน่งท้ายสุดของข้อความ \<ใช้กำหนดตำแหน่งเริ่มต้นของคำ
สัญลักษณ์ที่ใช้กำหนดตัวเลือก (ต่อ) |> ใช้กำหนดตำแหน่งท้ายสุดของคำ | ใช้เลือกตัวเลือกตัวใดตัวหนึ่งใน(…) (…) ใช้ครอบกลุ่มของตัวอักษรหรือกลุ่มของคำที่ต้องการให้มี ในข้อความ \metacharecter เมื่อเป็นตัวเลือก เช่น . ? + { } | ( )
สัญลักษณ์ที่ใช้แทนตัวอักษรหรือคำสัญลักษณ์ที่ใช้แทนตัวอักษรหรือคำ ? จำนวนที่มีได้ไม่เกินหนึ่งตัวและถ้าไม่มีก็ได้ * จำนวนที่มีเท่าไรก็ได้และถ้าไม่มีก็ได้ + จำนวนที่มีเท่าไรก็ได้แต่อย่างน้อยต้องมีหนึ่งตัว {n} จำนวนที่มีได้อย่างน้อยที่สุดคือ n ตัว {n,} จำนวนที่มีได้อย่างน้อยที่สุดคือ n หรือมากกว่า n ตัว {,m} จำนวนที่มีได้สูงสุดคือ m ตัว {n,m} จำนวนที่มีได้อย่างน้อยสุดคือ n แต่ต้องไม่เกิน m ตัว
ตัวอย่าง “somsak” เป็นการค้นหาคำว่า somsak ในข้อความ “^somsak” เป็นการค้นหาข้อความที่ขึ้นต้นด้วย somsak “sulpin$” เป็นการค้นหาข้อความที่ลงท้ายด้วย somsak “[joe]” เป็นการค้นหาตัวอักษร j หรือ o หรือ e ในข้อความ “^[joe]” เป็นการค้นหาข้อความที่ขึ้นต้นด้วยตัวอักษร j หรือ o หรือ e “[^joe]” เป็นการค้นหาข้อความที่ไม่มีตัวอักษร j หรือ o หรือ e “[joe]$” เป็นการค้นหาข้อความที่ลงท้ายด้วยตัวอักษร j หรือ o หรือ e
“\<somsak” เป็นการค้นหาข้อความที่ขึ้นต้นด้วย somsak “\>somsak” เป็นการค้นหาคำในข้อความที่ลงท้ายด้วย somsak “(joe)” เป็นการค้นหาคำว่า joe ในข้อความ “^(jor)” เป็นการค้นหาคำที่ขึ้นต้นด้วย joe “[^(joe)]” เป็นการค้นหาข้อความที่ไม่มีคำว่า joe “(joe)$” เป็นการค้นหาข้อความที่ลงท้ายด้วยคำว่า joe “(somsak|joe)” เป็นการค้นหาคำว่า somsak หรือ joe ในข้อความ “^(somsak|joe)” เป็นการค้นหาข้อความที่ขึ้นต้นด้วย somsak หรือ joe “(somsak|joe)$” เป็นการค้นหาข้อความที่ลงท้ายด้วย somsak หรือ joe “(\.|\?|\+|\\)”เป็นการค้นหาข้อความที่มีตัวอักษร . ? + \
“(\.dot|\what|\+plus)” เป็นการค้นหาข้อความที่มีคำว่า .dot หรือ ?what หรือ +plus “[A-Z]” เป็นการค้นหาตัวอักษร A หรือ B หรือ C ไปจนถึง Z ในข้อความ “[0-9]” เป็นการค้นหาตัวอักษร 0 หรือ 1 หรือ 2 ไปจนถึง 9 ในข้อความ “[A-Z][9-0]” เป็นการค้นหาคำที่มีตัวอักษร A หรือ B หรือ C ไปจนถึง Z เป็นตัวแรก และตัวที่สองต้องเป็นตัวอักษร 0 หรือ 1 หรือ 2 ไปจนถึง 9 ในข้อความ “[A-Z][^0-9]” เป็นการค้นหาคำที่มีตัวอักษร A หรือ B หรือ C ไปจนถึง Z เป็นตัวแรก และตัวที่สองต้องเป็นไม่ใช้ตัวอักษร 0 หรือ 1 หรือ 2 ไปจนถึง 9 ในข้อความ “([0-9]+(\.[0-9]+){3})” เป็นการค้นหาเลข IP (เช่น 192.168.0.1) ในข้อความ “([.]{1,2}([\][0-9a-zA-Z]*)*)” เป็นการค้นหา Path (เช่น ..\home\joe) ในข้อความ “[+-]?[0-9]+(\.[0-9]*)?” เป็นการค้นหาเลขทศนิยม (เช่น –2500.50) ในข้อความ “([0-9]{2}[:][0-9]{2}[:][0-9]{2})” เป็นการค้นหาเวลา (เช่น 10:20:40)ในข้อความ
ฟังก์ชันที่ใช้ใน Regular expression Eregใช้ค้นหาตัวอักษรหรือกลุ่มคำตามที่ได้กำหนดไว้ที่ตัวเลือกหรือเงื่อนไขและการค้นหาจะมีความแตกต่างกันในตัวพิมพ์เล็กกับตัวพิมพ์ใหญ่ คือ A จะไม่เท่ากับ a รูปแบบของคำสั่ง int ereg(string patter,string text);
ตัวอย่าง การใช้ ereg <? $s = “เอกสารของผมเก็บไว้ที่ ..\home\joe ถ้าเพื่อนคนไหนสนใจก็สามารถ copy ได้ครับ”; if(ereg(“home”,$s)) { echo “ในข้อความมีสิ่งที่คุณต้องการ”; } else { echo “ไม่มีสิ่งที่คุณต้องการในข้อความที่ค้นหา”; } flush(); ?> ในข้อความมีสิ่งที่คุณต้องการ
ตัวอย่างที่ 2 <? $s = “เอกสารของผมเก็บไว้ที่ ../home\joe ถ้าเพื่อนคนไหนสนใจก็ สามารถ copy ได้ครับ “; if (ereg(“HOME”,$s)) { echo “ในข้อความมีสิ่งที่คุณต้องการ”; } else { echo “ ไม่มีสิ่งที่คุณต้องการในข้อความที่ค้นหา”; } flush(); ?> ไม่มีสิ่งที่คุณต้องการในข้อความที่ค้นหา
ตัวอย่างที่ 3 <? $s = “เอกสารของผมไว้ที่ ..\home\joe ถ้าเพื่อนคนไหนสนใจก็สามารถ copy ได้ครับ”; if(ereg(“([.]{1,2}([\][0-9a-zA-Z]*)*)”,$s)){ echo “ ในข้อความมีสิ่งที่คุณต้องการ”; } else { echo” ไม่มีสิ่งที่คุณต้องการในข้อความที่ค้นหา”; } flush(); ?> ในข้อความมีสิ่งที่คุณต้องการ
Ereg_replace ใช้ค้นหาตัวอักษรหรือกลุ่มของคำเหมือนกับฟังก์ชัน ereg() แต่ ereg_replace มีการเปลี่ยนตัวอักษรหรือกลุ่มคำที่พบในข้อความนั้นเป็นตัวอักษรหรือกลุ่มคำใหม่ รูปแบบของคำสั่ง string ereg_replace(string pattern, string replace,string text);
ตัวอย่างการใช้Ereg_replace <? $s = “ เอกสารของผมเก็บไว้ที่ ..\home\joe ถ้าเพื่อนคนไหนสนใจก็สามารถ copy ได้ครับ”; echo “ ข้อความก่อนใช้ฟังก์ชัน ereg_place<br>”; echo” => $s<br>”; echo “ข้อความหลังใช้ฟังก์ชัน ereg_place<br>”; echo “=>”.ereg_replace(“home”,”home_replace”,$s); flush(); ?>
Ereg_replace (ต่อ) ผลลัพธ์ของโปรแกรม ข้อความก่อนใช้ฟังก์ชัน ereg_place ==> เอกสารของผมเก็บไว้ที่ ..\home\joe ถ้าเพื่อนคนไหนสนใจ ก็สามารถ copy ได้ครับ ข้อความหลังใช้ ฟังก์ชัน ereg_place ==>เอกสารของผมเก็บไว้ที่ ..\home_replace\joe ถ้าเพื่อนคนไหนสนใจ ก็สามารถ copy ได้ครับ
ตัวอย่าง <? $s = “ เอกสารของผมเก็บไว้ที่ ..\home\joe ถ้าเพื่อนคนไหนสนใจก็สามารถ copy ได้ครับ”; echo “ ข้อความก่อนใช้ฟังก์ชัน ereg_place<br>”; echo “=> $s<br>”; echo “ ข้อความหลังใช้ฟังก์ชัน ereg_place <br>”; echo “=>”.ereg_replace(“[.]{1,2}([\][0-9a-zA-Z]*)*)”, ”..\joe\system”,$s); flush(); ?>
ผลลัพธ์ • ข้อความก่อนใช้ฟังก์ชัน ereg_place => เอกสารของผมเก็บไว้ที่ ..\home\joe ถ้าเพื่อนคนไหนสนใจก็สามารถ copy ได้ครับ • ข้อความหลังใช้ฟังก์ชัน ereg_place => เอกสารของผมเก็บไว้ที่ ..\joe\system ถ้าเพื่อนคนไหนสนใจก็สามารถ copy ได้ครับ
Eregi การทำงานของฟังก์ชัน eregi() จะเหมือนกับฟังก์ชัน ereg() แต่การใช้ฟังก์ชันeregi()ค้นหาตัวอักษรหรือกลุ่มของคำนั้นตัวพิมพ์เล็กกับ ตัวพิมพ์ใหญ่จะมีค่าที่ไม่แตกต่างกัน คือ A จะมีค่าเท่ากับ a
Eregi_replace การทำของฟังก์ชัน eregi_replace() จะเหมือนกับฟังก์ชัน ereg_replace() แต่การค้นหาตัวอักษรหรือกลุ่มของคำนั้นตัวพิมพ์เล็กกับ ตัวพิมพ์ใหญ่จะมีค่าที่ไม่แตกต่างกันคือ A จะมีค่าเท่ากับ a