เรียน Regular Expression
RegexOne ดูตัวอย่างพร้อมทำแบบฝึกหัดได้ที่ตาม url นี้
https://regexone.com
abc… Letters
123… Digits
\d Any Digit
\D Any Non-digit character
. Any Character
\. Period
[abc] Only a, b, or c
[^abc] Not a, b, nor c
[a-z] Characters a to z
[0–9] Numbers 0 to 9
\w Any Alphanumeric character
\W Any Non-alphanumeric character
ชุดตัวอักษรของ regular expression แต่ละตัวจะใช้สำหรับแทนตัวอักษรแค่ 1 ตัวเท่านั้น
หากต้องการอักขระพิเศษให้ใช้เครื่องหมาย “\”นำหน้า เช่นหากต้องการตัวอักษร “?” ก็ให้แทนด้วย \?
{m} m Repetitions
มีตัวอักษรซ้ำกันกี่ตัวอักษร
{m,n} m to n Repetitions
มีตัวอักษรซ้ำกันเป็นจำนวน m ถึง n ตัวอักษร
* Zero or more repetitions
+ One or more repetitions
* ถ้าใช้ตามชุดของตัวอักษรใด จะหมายความว่าสามารถเป็นชุดอักษรนั้นได้ตั้งแต่ 0 ต้วอักษรเป็นต้นไป
+ ถ้าใช้ตามชุดของตัวอักษรใด จะหมายความว่าสามารถเป็นชุดอักษรนั้นได้ตั้งแต่ 1 ต้วอักษรเป็นต้นไป
? Optional character
Optional character หมายความให้มีหรือไม่มีตัวอักษรนี้ก็ได้
เช่น ab?c จะ match ได้กับ abc และ ac แต่จะไม่ match กับ acc เป็นต้น
\s Any Whitespace
\S Any Non-whitespace character
Whitespace ในที่นี้นับรวมถึง space, tab, new line(\n), carriage return(\r)
^…$ Starts and ends
หากเราต้องการว่าเป็นต้วอักษรที่ตัวแรกของประโยค ให้ใช้เครื่องหมาย “^”
หากต้องการตัวอักษรท้ายประโยค ให้ใช้เครื่องหมาย “$”
(…) Capture Group
ใช้วงเล็บเปิดปิดเพื่อ capture ชุดของข้อความที่ต้องการไว้เพื่อนำไปประมวลผลต่อ
(a(bc)) Capture Sub-group
แยกเป็น 2 group คือจะได้ group ใหญ่ และ group เล็ก (ข้อมูล group เล็กยังเป็น member ของ group ใหญ่)
(.*) Capture all
แยกกันคนละ group
(abc|def) Matches abc or def
match คำใดคำหนึ่ง
\b Word Boundary
หมายความว่าคำที่ต้องการหาจะเป็นคำที่ไม่ติดกับตัวอักษรใด เช่น \bThe จะหมายความว่าหน้าคำว่า “The” จะต้องไม่มีตัวอักษรใด หรือหากเป็น \bThe\b จะหมายความว่าหน้าและหลังคำว่า “The” จะต้องไม่มีตัวอักษรใด ๆ
\B Not a word boundary
หมายความว่าคำที่ต้องการจะต้องติดอยู่กับตัวอักษรอื่น ๆ
สำหรับ regular express ที่ใช้สำหรับ pattern ของ logstash จะเป็น Oniguruma Regular Expression ให้ดูรายละเอียดได้จากที่ url นี้
เราจะสร้าง custom pattern ในตอน load ข้อมูลผ่าน logstash หรือจะสร้าง pattern เก็บไว้ใช้เองก็ได้โดยวิธีการสร้างดูได้จาก url นี้
grok pattern
เรียนจาก youtube