กลุมสาระภาษาไทยกลุ่มสาระคณิตศาสตร์กลุ่มสาระวิทยาศาสตร์กลุ่มสาระศิลป-(ทัศนศิลป์-ดนตรี-นาฏศิลป์)กลุ่มสาระสุขศึกษาและพลศึกษากลุ่มสาระสังคมศึกษาศาสนาและวัฒนธรรมกลุ่มสาระการงานอาชีพและเทคโนโลยีกลุ่มสาระภาษาต่างประเทศกิจกรรมพัฒนาผู้เรียน

กลุมสาระภาษาไทยกลุ่มสาระคณิตศาสตร์กลุ่มสาระวิทยาศาสตร์กลุ่มสาระศิลป-(ทัศนศิลป์-ดนตรี-นาฏศิลป์)กลุ่มสาระสุขศึกษาและพลศึกษากลุ่มสาระสังคมศึกษาศาสนาและวัฒนธรรมกลุ่มสาระการงานอาชีพและเทคโนโลยีกลุ่มสาระภาษาต่างประเทศกิจกรรมพัฒนาผู้เรียน
หน้าแรก » ชุดคำสั่ง ภาษา PHP » บทที่ 37 Regular Expression
บทที่ 37 Regular Expression
บทที่ 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]

[aeiou] ตัวอักขระตัวหนึ่งจาก {a,e,i,o,u} ตัวไหนก็ได้
[0-9] ตัวอักขระตัวหนึ่งจาก {0,1,...,9} ตัวไหนก็ได้
[A-Za-z0-9] ตัวอักขระตัวหนึ่งจาก {A,B,..,Z, a, b, ... , z, 0, 1, ... 9} ตัวไหนก็ได้

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

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

<?  $a=array("0","1","2","3","5","7","a","b","c"); 
  
 for ($i=0; $i < count($a); $i++) { // print only digit 
   if ( ereg("[0-9]",$a[$i]) ) { 
     print ("$a[$i] <BR>\n"); 
   } 
 } 
?> 
<HR> 
<? 
 for ($i=0; $i < count($a); $i++) { // print only a, b or c 
   if ( ereg("[a-c]",$a[$i]) ) { 
     print ("$a[$i] <BR>\n"); 
   } 
 } 
?>


ตั้งคำถามโดย อาจารย์ วรัญญู  บุตรรินทร์ 
หัวใจของการปฏิรูปการศึกษา คือ การปฏิรูปการเรียนรู้ และหัวใจของการปฏิรูปการเรียนรู้ คือ การปฏิรูปจากการยึดวิชาเป็นตัวตั้ง หรือที่เรียกว่า .ผู้เรียนเป็นสำคัญที่สุด. 
Fanpage เพื่อการศึกษา 
เมื่อ 17 พฤศจิกายน 2555 19:10:27 สอนโดย >> ครูเอ็กซ์
อ่าน 556 ตอบ 0 223.204.59.160