Tìm từ trong Regular Expression trong Java



Miêu tả vấn đề

Cách tìm mỗi sự xuất hiện của từ trong một Regular Expression trong Java?

Giải pháp

Ví dụ sau minh họa cách tìm mỗi sự xuất hiện của từ trong một Regular Expression bởi sử dụng phương thức Pattern.compile() và m.group() trong Java.

import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Main {
   public static void main(String args[]) 
   throws Exception {
      String candidate = "this is a test, A TEST.";
      String regex = "\\ba\\w*\\b";
      Pattern p = Pattern.compile(regex);
      Matcher m = p.matcher(candidate);
      String val = null; 
      System.out.println("INPUT: " + candidate);
      System.out.println("REGEX: " + regex + "\r\n");
      while (m.find()) {
         val = m.group();
         System.out.println("MATCH: " + val);
      }
      if (val == null) {
         System.out.println("NO MATCHES: ");
      }
   }
}

Kết quả

Code trên sẽ cho kết quả sau:

INPUT: this is a test ,A TEST.
REGEX: \\ba\\w*\\b
MATCH: a test
MATCH: A TEST

regular_expression_trong_java.jsp