feature-image-of-robot-framework-regular-expression
feature-image-of-robot-framework-regular-expression

จริงๆผมเชื่อว่าทุกคนรู้จัก Regular Expression อยู่แล้วละ เพราะมันมีอยู่ในทุกๆภาษาเลยอาจจะแตกต่างกันบ้างเล็กน้อยก็เท่านั้น ซึ่งเจ้า Regular Expression เนี่ยจริงๆมันคือ กลุ่มคํา หรือ รูปแบบที่ใช่ในการค้นหาข้อความหรือตัวอักษรต่างๆว่าตรงตามเงื่อนไขหรือไม่

อย่างที่ Robot Framework ใช้ก็คือ Python RE (ตัวย่อของ regular expression) เพราะ อย่างที่รู้กัน Robot Framework สรา้งบนพื้นฐานของ Python นั้นเอง

Regular Expression พื้นฐาน

อยากจะบอกว่าพื้นฐานของ Regular Expression ไม่มีอะไรเลยครับ ขอให้เข้าใจก็แค่นั้นเอง เพราะมันจะเป็น common sense มากๆในการใช้ Regular Expression โดยทําแค่ ดูว่ารูปแบบหรือ Pattern ของ String ที่เราต้องการจะหาคือแบบไหน? แล้วก็มาดูว่า Regualr Expression เขียนยังไง

ถ้าเราจําไม่ได้หมดว่ามันใช้งานยังไง ซึ่งผมเองก็จําไม่หมด จะใช้วิธีใช้ Tools 2 ตัวนี้เข้ามาจัดการ

  • Regex101ชอบตัวนี้เพราะว่ามันอธิบายได้ดีมากๆๆเลย ว่า match pattern อะไรบ้าง
  • Rebular
  • RegExr

ดูตัวอย่างดีกว่าจาก steps การใช้งานดีกว่า จะได้เข้าใจง่ายขึ้น

Steps ของการใช้ Regular Expression คืออะไร? 

สมมุติว่าสถานการณ์ว่า เราจะได้ชุดข้อความมาก้อนใหญ่ๆก้อนนึง แล้วเราต้องการหาเบอร์โทรศัพท์ที่อยู่ในข้อความนั้นน่ะ

  1. เริ่มแรกดู pattern ของตัวอักษรที่เราต้องการจะใช้งาน เช่น “Hello World!, I’m Mart. My Number is 123-456-7890”
  2. copy ข้อความชุดใหญ่ๆที่เราต้องการหาเนี่ยไปใส่ใน Tools ตัวใดตัวนึงที่อยู่ข้างบนเลย (Rebular ทีเถอะ ชอบ)
  3. แล้วเริ่มไล่ดูว่า Pattern เบอร์โทรศัพท์ที่เขียนไว้คืออะไร? แล้วจะเห็นว่ามันประกอบด้วย ตัวเลข3ตัว แล้วก็เว้นวรรคทีนึง หลังจากนั้นก็ ตัวเลข 3 ตัวอีกชุด ตามด้วยเครื่องหมาย “-” และจบด้วย ตัวเลข 4 ตัว
  4. เทคนิคต่อไปก็แค่มาดูตาม References Guide ว่าต้องเขียนไรบ้าง
    example-regex-quick-reference
    example-regex-quick-reference

    เห็นที่วงไม๊? มันก็คือแค่เขียนตามที่เราเห็นเลย \d ตัวเลข 3 ตัว \d{3} เราเอา2อันมาประกอบกันแค่นั้นแหละ ส่วนตัวไหนเป็น static แบบเครื่องหมาย – ก็ใส่ไปตรงๆเลย Regex จะมองว่าให้หาตัวนี้โดยเฉพาะเลยละ

  5. ผลลัพธ์ก็จะออกมาตามรูปข้างล่างนี้
    result-regular-expression
    result-regular-expression

    เห็นไม๊? ไม่ยากเลยกับการใช้ Regular Expression ถ้าเรามี Tools ดีๆซักตัวก็จบล่ะ

Regular Expression กับ Robot Framework

พูดมาตั้งนานแล้ว Regex กับ Robot Framework ใช้งานยังไง ก่อนอื่นรู้หรือไม่ว่า Robot Framework น่ะมี Standard Libraries เยอะมากกกกก ดูตัวเต็มที่นี้

robot-framework-standard-libraries
robot-framework-standard-libraries

จริงๆถ้าจากที่ไล่อ่านดูทั้งสอง Libraies น่ะมันมี Regex เหมือนกัน แต่จุดมุ่งหมายแตกต่างกัน

  • String น่ะมันตั้งใจเพื่อให้ใช้ในการ Manipulation เป็นซะส่วนใหญ่ เช่น Replace, Split เป็นต้น
  • Built In ตั้งใจเป็น Standard Library เน้นพวกการนํามา Verification หรือ Set ค่าต่างๆ

แต่ส่วนใหญ่ที่เวลาเราใช้งานจริงๆก็คือตัวนี้นี่แหละ “Should Match Regexp

robot-framework-regexp-should-match
robot-framework-regexp-should-match

Keyword ตัวนี้เลยที่เราใช้ Regex ในการเทียบข้อมูลต่างๆ ตาม Steps ข้างบนที่เขียนว่า หลังจากเราทําตาม Steps ข้างบนเสร็จก็เอามาใส่ใน Keyword นี้เพื่อ compare …. แค่นี้แหละจบเลยอะ!

robotframework-example-regex
robotframework-example-regex (http://seleniummaster.com/sitecontent/index.php/selenium-robot-framework-menu/selenium-robot-framework-python-menu/216-robot-framework-regular-expression-test-and-keywords)

สรุปละ

Regex ง่ายนิดเดียว เพียงแค่มีเครื่องมือดีๆกับ References ดีๆ แค่นั้นเราก็เอามาประยุกต์ใช้กับ Robot Framework ได้ง่ายๆสบายเลย ในการตรวจสอบข้อความด้วย Regex แบบนี้อ่ะ 🙂

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.