Tag: RegEx

  • Regular Expressions: เครื่องมือถอดรหัส เพื่อทำงานกับ Text ใน Google Sheets — แนะนำวิธีใช้สูตร REGEXMATCH, REGEXEXTRACT, REGEXREPLACE

    Regular Expressions: เครื่องมือถอดรหัส เพื่อทำงานกับ Text ใน Google Sheets — แนะนำวิธีใช้สูตร REGEXMATCH, REGEXEXTRACT, REGEXREPLACE

    Regular expression หรือ การเขียน pattern เพื่อทำงานกับ text เป็นเหมือนกับเครื่องถอดรหัสที่ช่วยถอดรูปแบบของข้อความ และช่วยให้เราทำงานกับข้อมูลได้ง่ายขึ้น

    ยกตัวอย่างเช่น เรามีข้อมูลลูกค้าที่เก็บค่าไว้ใน cell เดียวกัน:

    แต่เราต้องการแยกข้อมูลเป็น columns เพื่อความสะดวกในการใช้งานต่อ เช่น:

    • ID
    • Name
    • Address

    แทนที่เรา copy-paste ข้อมูลลงทีละ column ด้วยตัวเอง เราสามารถใช้สูตร regular expression ของ Google Sheets ช่วยได้:

    .

    ในบทความนี้ เราจะทำความรู้จักกับ:

    1. 3 สูตร Google Sheets ที่ใช้ทำงานกับ regular expression
    2. การเขียน regular expression เพื่อใช้งาน 3 สูตรนี้

    ถ้าพร้อมแล้วมาเริ่มกันเลย


    1. 👨‍🔬 Intro to REGEX Formulas
    2. ⌨️ Regular Expression Basics
      1. 🔣 (1) Special Characters
      2. 🔣 (2) Character Classes
      3. 🔣 (3) Quantifiers
      4. 🔣 (4) Others
      5. 📃 Learn More
    3. 💪 Put It All Together
      1. 🗝️ (1) REGEXMATCH
      2. 🗝️ (2) REGEXEXTRACT
      3. 🗝️ (3) REGEXREPLACE
    4. 📚 References

    👨‍🔬 Intro to REGEX Formulas

    Google Sheets มี 3 สูตรสำหรับใช้ regular expression ซึ่งได้แก่:

    No.FormulaFor
    1REGEXMATCH()เช็กหาคำที่ตรงกับ regular expression
    2REGEXEXTRACT()ดึงคำที่ตรงกับ regular expression ออกมา
    3REGEXREPLACE()แทนที่คำที่ตรงกับ regular expression

    โดยมีการเขียนดังนี้:

    No.FormulaSyntax
    1REGEXMATCH()REGEXMATCH(text, regular_expression)
    2REGEXEXTRACT()REGEXEXTRACT(text, regular_expression)
    3REGEXREPLACE()REGEXREPLACE(text, regular_expression, replacement)
    • text คือ ข้อมูล text ที่เราจะใช้ทำงาน
    • regular_expression คือ regular expression ที่เราใช้กำหนดเงื่อนไข
    • replacement คือ คำที่จะแทนที่คำที่ตรงกับ regular expression

    .

    ก่อนไปดูการใช้งานจริง เรามาดูหลักการเขียน regular expression เพื่อให้สูตรเหล่านี้ทำงานได้กัน


    ⌨️ Regular Expression Basics

    การเขียน regular expression แบ่งออกได้เป็น 4 กลุ่มหลัก ได้แก่:

    1. Special characters
    2. Character classes
    3. Quantifiers
    4. Others

    .

    🔣 (1) Special Characters

    Regular expression ในกลุ่มนี้ เป็นอักขระพิเศษ โดยมี usage ต่างกันดังนี้:

    No.CharacterForExample
    1^…เริ่มต้นด้วย …^J หมายถึง คำที่ขึ้นต้นด้วย J
    2…$ลงท้ายด้วย …s$ หมายถึง คำที่ลงท้ายด้วย s
    3.แทนอักขระใด ๆ 1 ตัว (ยกเว้นการขึ้นบรรทัดใหม่)c.t ใช้หาคำเช่น cat, cmt, cPt, c7t
    5\\…ใช้บอกว่า … ไม่ใช่ regular expression\\. หมายถึง ให้หาคำที่มี . แทนคำที่มีอักขระใด ๆ

    .

    🔣 (2) Character Classes

    Regular expression ในกลุ่มนี้ ใช้แทนตัวอักษรและตัวเลข:

    No.CharacterForExample
    1[…]จับคู่ตัวอักษร ใน [][ABC] หมายถึง จับคู่คำที่มี A, B, หรือ C
    2[A-Z]จับคู่ตัวอักษร A-Z พิมพ์ใหญ่จะได้คำ เช่น ANT, FGH, QPD, …
    3[a-z]จับคู่ตัวอักษร a-z พิมพ์เล็กจะได้คำ เช่น ant, fgh, qpd, …
    4[A-Za-z]จับคู่ตัวอักษร A-Z พิมพ์เล็กหรือใหญ่ก็ได้จะได้คำ เช่น aNt, Fgh, qpD, …
    5[A-z]จับคู่ตัวอักษร a-z พิมพ์เล็กหรือใหญ่ก็ได้จะได้คำ เช่น aNt, Fgh, qpD, …
    6[0-9]จับคู่ตัวตัวเลข 0-9จะได้คำ เช่น 012, 438, 507, …

    .

    🔣 (3) Quantifiers

    Regular expression ในกลุ่มนี้ ใช้แทนจำนวนตัวอักขระที่ต้องการค้นหา:

    No.CharacterForExample
    1…*จับคู่อักขระ … จำนวนตั้งแต่ 0 ขึ้นไปA* จับคู่คำ เช่น A, An, Ant, ANts, …
    2…+จับคู่อักขระ … จำนวนตั้งแต่ 1 ขึ้นไปA+ จับคู่คำ เช่น An, Ant, ANts, …
    3…?จับคู่อักขระ … จำนวน 0 หรือ 1A? จับคู่คำ เช่น A, An, AT, …
    5…{…}จับคู่อักขระ … ตามจำนวนใน {}.{5} หมายถึง จับคู่อักขระใด ๆ ที่มีความยาว 5 ตัว
    4…{…, …}จับคู่อักขระ … ตามช่วงใน {}.{3, 5} หมายถึง จับคู่อักขระใด ๆ ที่มีความยาว 3 ถึง 5 ตัว

    .

    🔣 (4) Others

    Regular expression อื่น ๆ นอกเหนือ 3 กลุ่มแรก:

    No.CharacterForExample
    1\\wจับคู่ A-Z ทั้งพิมพ์เล็กและใหญ่ หรือตัวเลขก็ได้
    2\\dจับคู่ตัวตัวเลข 0-9
    3\\bจับคู่ word boundary
    4\\nจับคู่ new line
    5\\sจับคู่ blank space
    6(…)จับกลุ่ม regular expression

    .

    📃 Learn More

    เราสามารถ regular expression อื่น ๆ ได้ที่ Syntax for Regular Expressions จาก Google


    💪 Put It All Together

    ตอนนี้ เรารู้จัก 3 สูตร REGEX และการเขียน regular expression แล้ว

    เรามาดูตัวอย่างการใช้งานสูตร REGEX ในการทำงานกัน

    .

    ในตัวอย่าง เรามีข้อมูลพนักงาน 3 columns ได้แก่:

    1. Name
    2. Email
    3. Comment

    Note: สามารถดูต้นฉบับได้ที่ Google Sheets

    .

    🗝️ (1) REGEXMATCH

    สมมุติว่า เราต้องการเช็กว่า ใน comment มีคำว่า “comment” ไหม

    เราสามารถใช้ REGEXMATCH ได้ดังนี้:

    =REGEXMATCH(C3, "[Cc]omment")

    ผลลัพธ์:

    จะเห็นว่า เราได้ค่า TRUE และ FALSE กลับมา:

    • TRUE แสดงว่า text มีคำว่า “comment”
    • FALSE แสดงว่า text ไม่มีคำว่า “comment”

    .

    🗝️ (2) REGEXEXTRACT

    เราต้องการดึงนามสกุลออกจากชื่อ

    เราสามารถใช้ REGEXEXTRACT ช่วยได้:

    =REGEXEXTRACT(A3, "\s([A-z]*)")

    ผลลัพธ์:

    .

    🗝️ (3) REGEXREPLACE

    เราต้องการเปลี่ยนอีเมลของทุกคนให้มี domain (เช่น @example.com และ @adams-mail.net) เป็น @email.com

    เราสามารถใช้ REGEXREPLACE ช่วยได้:

    =REGEXREPLACE(B3, "@[A-z.-]+\.[A-z]{2,}", "@email.com")

    ผลลัพธ์:


    📚 References