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...

นายเองก็ดูเทพได้นะ ด้วย tmux น่ะ

นายเองก็ดูเทพได้นะ ด้วย tmux น่ะ

เมื่อหลายวันก่อน เราไปทำงานแล้วใช้ Terminal แบบปีศาจมาก ๆ จนเพื่อนถามว่า เราทำยังไงถึงสามารถสลับ Terminal Session ไปมาได้แบบบ้าคลั่งขนาดนั้น เบื้องหลังของผมน่ะเหรอกัปตัน ผมใช้ tmux ยังไงละ วันนี้เราจะมาแชร์ให้อ่านกันว่า มันเอามาใช้งานจริงได้อย่างไร เป็น Beginner Guide สำหรับคนที่อยากลองละกัน...

ปกป้อง Ubuntu ผ่าน Firewall แบบง่าย ๆ ด้วย UFW

ปกป้อง Ubuntu ผ่าน Firewall แบบง่าย ๆ ด้วย UFW

Firewall ถือว่าเป็นเครื่องมือในการป้องกันภัยขั้นพื้นฐานที่ปัจจุบันใคร ๆ ก็ติดตั้งใช้งานกันอยู่แล้ว แต่หากเรากำลังใช้ Ubuntu อยู่ จริง ๆ แล้วเขามี Firewall มาให้เราใช้งานได้เลยนะ มันชื่อว่า UFW วันนี้เราจะมาทำความรู้จัก และทดลองตั้ง Rule สำหรับการดักจับการเชื่อมต่อที่ไม่เกี่ยวข้องกันดีกว่า...

จัดการเรื่องแต่ละมื้อ แต่ละเดย์ด้วย Obsidian

จัดการเรื่องแต่ละมื้อ แต่ละเดย์ด้วย Obsidian

Obsidian เป็นโปรแกรมสำหรับการจด Note ที่เรียกว่า สารพัดประโยชน์มาก ๆ เราสามารถเอามาทำอะไรได้เยอะมาก ๆ หนึ่งในสิ่งที่เราเอามาทำคือ นำมาใช้เป็นระบบสำหรับการจัดการ Todo List ในแต่ละวันของเรา ทำอะไรบ้าง วันนี้เราจะมาเล่าให้อ่านกันว่า เราจัดการะบบอย่างไร...

Loop แท้ไม่มีอยู่จริง มีแต่ความจริงซึ่งคนโง่ยอมรับไม่ได้

Loop แท้ไม่มีอยู่จริง มีแต่ความจริงซึ่งคนโง่ยอมรับไม่ได้

อะ อะจ๊ะเอ๋ตัวเอง เป็นยังไงบ้างละ เมื่อหลายเดือนก่อน เราไปเล่าเรื่องกันขำ ๆ ว่า ๆ จริง ๆ แล้วพวก Loop ที่เราใช้เขียนโปรแกรมกันอยู่ มันไม่มีอยู่จริง สิ่งที่เราใช้งานกันมันพยายาม Abstract บางอย่างออกไป วันนี้เราจะมาถอดการทำงานของ Loop จริง ๆ กันว่า มันทำงานอย่างไรกันแน่ ผ่านภาษา Assembly...