GORAGOD.com

Regular Expressions (ตอนที่ 3)

ตัวอักษรพิเศษ ซึ่งใช้แทนอักขระบางตัว(หรือหลายตัว) ครั้งละ 1 ตัวอักษร เช่น

\a control characters bell
\b backspace
\d ตัวเลขใดๆ หรือ [0-9]
\D ไม่ใช่ตัวเลข หรือ [^0-9]
\f form feed
line feed
carriage return
\s ใช้แทนช่องว่าง (White Space) หรือ [ \t \f\v]
\S ไม่ใช่ช่องว่างทั้งหลาย หรือ [^\s]
\t ใช้แทนเครื่องหมาย tab
\v vertical tab
\w อักขระใดๆ หรือ [a-zA-Z0-9_]
\W ไม่ใช่อักขระใดๆ หรือ [^\w]

และ กลุ่มตัวอักษรที่ใช้แทนคำสั่งพิเศษอื่นๆ ซึ่งจะต้องเขียนอยู่ใน [] เสมอ ได้แก่

[:alpha:] ตัวอักษรภาษาอังกฤษใดๆก็ได้ เช่น a ถึง z (พิมพ์เล็ก) และ A ถึง Z (พิมพ์ใหญ่) หรือ มีความหมายเหมือนกับ [a-zA-z]
[:alnum:] ตัวเลขและตัวอักษรภาษาอังกฤษใดๆ มีความหมายเหมือนกับ [0-9a-zA-Z]
[:digit:] ตัวเลขใดๆ มีความหมายเหมือนกับ [0-9]
[:blank:] ช่องว่าง และ tab มีความหมายเหมือนกับ [\s\t]
[:lower:] ภาษาอังกฤษตัวพิมพ์เล็ก มีความหมายเหมือนกับ [a-z]
[:upper:] ภาษาอังกฤษตัวพิมพ์ใหญ่ มีความหมายเหมือนกับ [A-Z]
[:space:] ช่องว่างใดๆ 1 ตัวอักษร
[:print:] ตัวอักษรใดๆที่พิมพ์ออกมาได้ (printable character) เช่นไม่ตรงกับ (new line)
[:graph:] ตัวอักษรใดๆ (graphical character) ยกเว้น space
[:xdigit:] ข้อความเลขฐานสิบหก เช่นข้อความที่มี เลข 0-9 และ a-f และ A-F เช่น 2A 5f
[:punct:] ตัวอักษร punctuation เช่น . , " ' ? ! ; :

หากเราใช้เครื่องหมาย ^ ภายใน Character Classes จะมีความหมายว่า ไม่ใช่ Character นั้นๆ เช่น ^\s หมายถึงไม่ใช่ช่องว่าง หรือ [^A-Z] หมายถึงไมใช่อักษรภาษาอังกฤษพิมพ์ใหญ่ เป็นต้น