สวัสดีค่ะทุกคน Regular Expression เป็นเรื่องที่แจ๊คพึ่งจะเรียนไปในบทเรียน Spreadsheet แล้วเห็นว่าน่าสนใจ แจ๊คเลยหยิบมาฝากเพื่อนๆค่ะ เพื่อนๆที่ได้ใช้บ่อยๆอาจจะต้องทำงานกับข้อมูล แต่คนที่ไม่ได้ใช้ ไม่เป็นไรนะคะถือว่ามาเรียนรู้เผื่อในอนาคตมีโอกาสได้หยิบมาใช้งานค่ะ 😄
Regular Expression คืออะไร?
ตาม Step ก่อนที่เราจะไปเรียนรู้วิธีใช้งาน เราก็ต้องรู้ก่อนว่ามันคืออะไร ใช้ทำอะไรได้ สั้นๆเลย มันคือ Pattern Matching ที่เอาไว้ search หาคำที่เราต้องการ โดย Regular Expression จะมีอยู่ 3 Function
- REGEXMATCH -> ใช้เพื่อ search หาว่ามีคำที่ระบุอยู่ในข้อความนั้นหรือไม่ Result ที่ได้จะเป็น True / False
- REGEXEXTRACT -> ใช้สกัดคำออกมา หรือก็คือใช้ดึงข้อความออกมาตามเงื่อนไขที่ระบุ
- 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