Tutorial

Java 101 - Regax with Pattern

By Arnon Puitrakul - 18 มกราคม 2015

Java 101 - Regax with Pattern

วันนี้ก็กลับมาอีกแล้ว วันนี้อยากมาเอง ไม่มีใครจุดธูปเรียก เฮ้ยไม่ใช่ เข้าเรื่องดีกว่า ช่วงนี้ก็เปิดเทอมแล้วก็เลยทำโจทย์อะไรหน่อย พอดีไปเจอโจทย์ข้อนึงใน Google Code Jam แล้วนั่งแก้อยู่ประมาณ 2 ชม. ได้ และก็ทำให้ได้คิดถึง Class ที่จะพูดในวันนี้นั่นคือ Pattern Class

Regular Expression คืออะไร?

ก่อนจะไปถึง Pattern Class ก่อนอื่นขออธิบายก่อนว่า Regular Expression หรือ Regex คืออะไร ง่ายๆแล้วมันคือการบอกรูปแบบของข้อความ เช่น a* มันอาจจะแปลว่า aa หรือ aaa ไปได้เรื่อยๆ หรือจะเป็น a_b_ ก็อาจจะแปลว่า aabb abb ไปเรื่อยๆ ซึ่งมันก็มีนอกจากเครื่องหมายดอกจันทร์อีก ซึ่งไม่ขอพูด
เราจะมาลองเล่นกันคร่าวๆ เราจะป้อน String เข้าไปอันนึง แล้วก็ String อีกอันที่เป็น Pattern

String in_str = sc.nextLine();
String in_pattern = sc.nextLine();

ถัดมาเราจะมาสร้าง Pattern กัน

Pattern pattern = Pattern.compile(in_pattern);

ถัดมาเราสร้าง Object pattern ขึ้นมาพร้อมกับเรียก Method compile ให้มัน Generate ข้อความจาก Regular Expression ที่เราป้อนเข้าไป

if (pattern.matcher(in_str).matches()) System.out.println("Match");
else System.out.println("Not Match");

ถัดมาเราจะมาเช็คกันในที่นี้ผมใช้If แล้วเรียก Method matcher ขึ้นมาเพื่อเช็คกับ String ที่เราป้อนเข้าไป และเรียก Method matches ทับเพื่อให้มัน Return ค่า เป็น True/False ถ้าเป็น True ก็ให้มันบอกว่ Match หรือถ้าไม่ก็ให้มันบอกว่า Not Match **
รูปแบบของ Regular Expression ที่จะให้
Method compile** เรียกนั้นมีหลายแบบสามารถเข้าไปอ่านได้ใน Document ของตัว Java เองได้ ไม่อธิบายเพราะมันเยอะ ตอนนี้ขอเล่น**[]** ก่อน เพราะมันง่ายดี เรามาลองรันกัน ผมป้อนว่า

abc
[abr]b[ad]

เพราะฉะนั้นผลมันออกมาจะเป็น Not Match เพราะว่า เราป้อน Pattern บอกว่าตัวแรกอาจจะเป็น a,b,r เท่านั้นก็คือผ่าน ตัวที่ 2 ก็คือ b แน่นอนก็ตรงอีก มาตัวสุดท้าย เป็นได้เฉพาะ a หรือ d เท่านั้นซึ่งไม่ตรงมันเลยออกมาเป็น Not Match ตามที่เราโปรแกรมไว้
**Source Code : **https://drive.google.com/folderview?id=0BwrPA9Miv4o2NkZWUHpjV0ZXY2M&usp=sharing

Read Next...

ติดตั้ง Zigbee Dongle บน Synology NAS กับ Home Assistant

ติดตั้ง Zigbee Dongle บน Synology NAS กับ Home Assistant

ก่อนหน้านี้เราเปลี่ยนมาใช้ Zigbee Dongle กับ Home Assistant พบว่าเสถียรขึ้นเยอะมาก อุปกรณ์แทบไม่หลุดออกจากระบบเลย แต่การติดตั้งมันเข้ากับ Synology DSM นั้นมีรายละเอียดมากกว่าอันอื่นนิดหน่อย วันนี้เราจะมาเล่าวิธีการเพื่อใครเอาไปทำกัน...

โหลด CSV วิธีไหนเร็วที่สุด ?

โหลด CSV วิธีไหนเร็วที่สุด ?

เมื่อหลายวันก่อนมีพี่ที่รู้จักกันมาถามว่า เราจะโหลด CSV ยังไงให้เร็วที่สุด เป็นคำถามที่ดูเหมือนง่ายนะ แต่พอมานั่งคิด ๆ ต่อ เห้ย มันมีอะไรสนุก ๆ ในนั้นเยอะเลยนี่หว่า วันนี้เราจะมาเล่าให้อ่านกันว่า มันมีวิธีการอย่างไรบ้าง และวิธีไหนเร็วที่สุด เหมาะกับงานแบบไหน...

ฮาวทู Sync Obsidian Note ด้วย LiveSync Plugin

ฮาวทู Sync Obsidian Note ด้วย LiveSync Plugin

ตั้งแต่ใช้ Obsidian เป็น App จด Note หลัก ชอบวิธีการจัดการมาก ๆ เมื่อใช้งานร่วมกับ Plugin ต่าง ๆ ยิ่งทำให้การใช้งานยืดหยุ่นมากกว่าเดิมอีกเยอะมาก ๆ ติดอยู่เรื่องเดียวคือ การใช้งานในหลาย ๆ อุปกรณ์ แต่เราเจอ Plugin ตัวนึงที่น่าสนใจมาก ๆ คือ LiveSync วันนี้เราจะมาเล่าวิธีการติดตั้ง และใช้งานมันกัน...

การสร้าง SSD Storage Pool บน Synology DSM

การสร้าง SSD Storage Pool บน Synology DSM

สำหรับคนที่ใช้ Synology NAS บางรุ่นจะมีช่อง M.2 สำหรับเสียบ NVMe SSD โดยพื้นฐาน Synology บอกว่ามันสำหรับการทำ Cache แต่ถ้าเราต้องการเอามันมาทำเป็น Storage ละ มันจะทำได้มั้ย วันนี้เราจะมาเล่าวิธีการทำกัน...