REGEX คืออะไร? ทำอะไรได้?

สวัสดีค่ะทุกคน Regular Expression เป็นเรื่องที่แจ๊คพึ่งจะเรียนไปในบทเรียน Spreadsheet แล้วเห็นว่าน่าสนใจ แจ๊คเลยหยิบมาฝากเพื่อนๆค่ะ เพื่อนๆที่ได้ใช้บ่อยๆอาจจะต้องทำงานกับข้อมูล แต่คนที่ไม่ได้ใช้ ไม่เป็นไรนะคะถือว่ามาเรียนรู้เผื่อในอนาคตมีโอกาสได้หยิบมาใช้งานค่ะ 😄

Regular Expression คืออะไร?

ตาม Step ก่อนที่เราจะไปเรียนรู้วิธีใช้งาน เราก็ต้องรู้ก่อนว่ามันคืออะไร ใช้ทำอะไรได้ สั้นๆเลย มันคือ Pattern Matching ที่เอาไว้ search หาคำที่เราต้องการ โดย Regular Expression จะมีอยู่ 3 Function

  1. REGEXMATCH -> ใช้เพื่อ search หาว่ามีคำที่ระบุอยู่ในข้อความนั้นหรือไม่ Result ที่ได้จะเป็น True / False
  2. REGEXEXTRACT -> ใช้สกัดคำออกมา หรือก็คือใช้ดึงข้อความออกมาตามเงื่อนไขที่ระบุ
  3. REGEXREPLACE -> แทนที่คำเดิมด้วยคำใหม่

Syntax for Regular Expressions

ก่อนจะไปดูตัวอย่างเรามารู้จัก Syntax กันก่อนนนนน

[A-Za-z] หรือ [ก-๙] (ไทย)แมตช์ตัวอักษร a-z / A-Z
(?:Hi)ไม่เอาคำว่า Hi หรือ ไม่เอาคำที่อยู่ในวงเล็บ
[0-9] หรือ \dแมตช์เลข 0-9 เช่น 2, 3, 9
.แมตช์อะไรก็ได้
+แมตช์ 1 หรือ มากกว่า

นี่เป็นแค่ตัวอย่าง Syntax ที่แจ๊คหยิบมานะคะ เพื่อนๆสามารถไปดูเพิ่มเติมได้ที่ Syntax for Regular Expressions , Regular-Expression.info ได้เลยค่าาา 😊

เพื่อให้เข้าใจและเห็นภาพมากขึ้นเรามาดูตัวอย่างกันดีกว่า ทุกคนสามารถฝึกไปด้วยกันได้เลยนะคะ 😄

REGEXMATCH

ตัวอย่างนี้เราจะหาคำว่า “Charles” กับ “Jeew” ในประโยคดูนะคะ

=REGEXMATCH(B1,"Charles")

=REGEXMATCH(B1,"Jeew")

จะเห็นว่า Result ที่ได้จะแสดงเป็นค่า TRUE / FALSE โดยจากตัวอย่างเจอคำว่า “Charles” อยู่ในข้อความ result ที่ได้จะแสดงค่า TRUE ส่วนคำว่า “Jeew” ไม่มีอยู่ในข้อความ result ที่ได้ก็จะแสดงค่า FALSE ค่ะ😄

อันนี้เป็นอีกหนึ่งตัวอย่าง หนึ่งไอเดียที่เอามาประยุกต์ใช้ประโยชน์ด้านงาน Research เพื่อที่จะสำรวจความคิดเห็นของลูกค้าเกี่ยวกับการจัดส่งนะคะ

=REGEXMATCH(A2, "จัดส่ง")

REGEXEXTRACT

ปกติเพื่อนๆใช้วิธีไหนในการแยกกันคะ ตัวแจ๊คเองแต่ก่อนใช้วิธี Copy – Past ง่ายๆนี่แหละค่ะ แต่ถ้าต้องทำกับข้อมูลที่มีหลายๆ แถว สัก 50 แถวนี่ก็เริ่มไม่สนุกที่จะทำแล้ว ลองคิดภาพต่อถ้ามีเป็นร้อยๆ พันๆแถวมานั่งก็อปวางคงไม่ไหวใช่มั๊ยล่ะคะ 55555555 วันนี้แจ๊คจะพามาดูวิธีที่ช่วยให้เราทำงานได้เร็วกว่าการ Copy – Past ค่ะ โดยพระเอกของเราจะเป็นใครไม่ได้ REGEXEXTRACT นั่นเองงง 😄

โดยปกติเลขบัตรจะมีรูปแบบของมันอยู่แล้ว เราสามารถใช้สูตรแล้วเขียน syntax เพื่อดึงมันออกมาได้เลย (syntax เพื่อนศึกษาเพิ่มจากที่แปะให้ได้เลยนะคะ)

=REGEXEXTRACT(A2,"\d-\d{4}-\d{5}-\d{2}-\d")

เสร็จบรรทัดแรกกด Enter จากนั้นกด Ctrl+Enter ให้ Auto fill ได้เลยยย แค่นี้เราก็จะสามารถดึงเลขบัตรออกมาได้อย่างรวดเร็ว

อันนี้เป็นวีดีโอสั้นๆที่แจ๊คทำไว้เผื่อเพื่อนๆงงนะคะ

REGEXREPLACE

สำหรับฟังก์ชัน REGEXREPLACE ตามชื่อเลยค่ะ เราป้อนสิ่งที่เราต้องการให้เข้าไปแทนที่จุดที่เราระบุ ซึ่งในตัวอย่างนี้เราจะใช้คำว่า “คุณ” ให้เข้าไปแทนที่ที่ตำแหน่งคำนำหน้าชื่อ

=REGEXREPLACE(A2,"(นาย|นางสาว|นาง|ด.ช.|ด.ญ.)","คุณ")

เสร็จเรียบร้อยค่าาา แค่นี้เราก็สามารถเปลี่ยนคำนำหน้าได้ ในเวลาไม่ถึง 1 นาที ฮี่ฮี่

เป็นยังไงบ้างคะวันนี้ แค่นี้ทุกคนก็สามารถทำงานได้ไวขึ้นหลายเท่าเลย แม้ว่าอาจจะต้องศึกษา syntax เพิ่มนิดหน่อย หวังว่าเพื่อนๆจะได้ความรู้และชอบสิ่งที่แจ๊คนำมาแชร์นะคะ นอกจากตัวอย่างที่แจ๊คให้ ยังสามารถนำไปประยุกต์ใช้กับงานอื่นๆได้อีกหลายงานเลยค่ะ

สำหรับวันนี้ยินดีกับเพื่อนๆที่อ่านจบด้วยค่ะ วันนี้เราเก่งเพิ่มขึ้นอีก 1 เรื่องแล้ววว เย้ๆๆ ถ้าเพื่อนๆอยากเรียนรู้ไปพร้อมกันอีก รอติดตามบทความหน้าที่แจ๊คจะมาแชร์ได้เลยค่า 😊❤️

Leave a comment