Advance Ragular Expression
December 23, 2007 – 1:41 amมาต่อกันภาคสองกับการใช้ Ragular Expression ในระดับสูงขึ้นอีกนิดกับโดยการกำหนดรูปแบบการค้นหาแบบอื่นๆ ได้กว้างขวาง และยืดหยุ่นกว่าที่ผ่านมา…
Operator
| สัญลักษณ์ | ความหมาย |
| . | เครื่องหมายจุด หมายถึง อะไรก็ได้ |
| [] | ใช้ดูว่ามีตัวอักษรที่ต้องการหรือเปล่า |
| [[:alpha:]] | ตรวจสอบว่าเป็นตัวอักษรหรือเปล่า |
| [[:digit:]] | ตรวจสอบว่าเป็นตัวเลขหรือเปล่า |
| [[:alnum:]] | ตรวจสอบว่าเป็นตัวเลขหรือตัวอักษร |
| [[:space:]] | เป็นช่องว่างหรือเปล่า |
| [[:upper:]] | เป็นตัวอักษรใหญ่หรือเปล่า |
| [[:lower:]] | เป็นตัวอักษรเล็กหรือเปล่า |
| [[:punct:]] | เป็นตัวอักษรพิเศษหรือเปล่า เช่น -,!,? |
มาลองดูตัวอย่างกัน
<?
$str = "My String";
if(ereg("[Z]“,$str))
{
echo”Found”;
}
else
{
echo”Not Found”;
}
?>
จากตัวอย่างด้านบน เป็นการถามว่ามีตัวอักษร Z อยู่ในตัวแปร $str หรือเปล่า ผลที่ได้คือ Not Found ให้ลองเปลี่ยนต่อไปเรื่อยๆ เช่น
Z1234 ผลที่ได้คือ Not Found
ZS ผลที่ได้คือ Found เพราะมีตัว S อยู่
ทีนี้ เราก็สามารถเขียนรูปแบบการค้นหาได้อีกหลากหลายรูปแบบ ตาม Operator ด้านบน เช่น
^[a-zA-Z]$ ตรวจสอบว่าเป็นตัวอักษรทั้งหมดหรือเปล่า เป็นตัวเล็ก ใหญ่ ทั้งหมด หรือเปล่า
^[[:alpha:]]{4}$ เป็นตัวอักษรทั้งหมด และต้องมีเพียง 4 ตัวอักษรด้วย เช่น abcd ไม่นับรวม a123
^[[:digit:]]{4}$ เป็นตัวเลขเท่านั้น แต่ต้องมีแค่ 4 ตัว เช่น 1234 , 5678 ไม่นับรวม 12qw , qw34
^x$ ต้องเป็นตัว x ตัวเดียวเท่านั้น
และนี่ คือเทคนิคการจัดรูปแบบ โดยการใช้ Ragular Expression ซึ่งจะทำให้การเขียนโปรแกรมง่ายขึ้น มีความยืดหยุ่นในการใช้งานมากขึ้น ยังไงก็ลองประยุกต์ใช้ดูนะครับ ว่าต้องการจัดรูปแบบอย่างไร
Leave a reply