ตัวนับแบบละเอียด (greedy quantifiers) ที่ Java จัดเตรียมไว้ ช่วยให้คุณจับคู่การเกิดซ้ำของนิพจน์หลายครั้ง โดยที่:
Exp{n} บังคับให้เกิดนิพจน์ exp อย่างแน่นอน n ครั้ง
Exp{n,} บังคับให้เกิดนิพจน์ exp อย่างน้อย n ครั้ง
Exp{n, m} บังคับให้เกิดนิพจน์ exp อย่างน้อย n และสูงสุด m ครั้ง
ตัวอย่างที่ 1
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main( String args[] ) {
// นิพจน์ปกติยอมรับคำ 5 ตัวอักษร
String regex = "\\w{5}";
Scanner sc = new Scanner(System.in);
System.out.println("Enter 5 input strings: ");
String input[] = new String[5];
for (int i=0; i<5; i++) {
input[i] = sc.nextLine();
}
// สร้างออบเจ็กต์ Pattern
Pattern p = Pattern.compile(regex);
for(int i=0; i<5;i++) {
// สร้างออบเจ็กต์ Matcher
Matcher m = p.matcher(input[i]);
if(m.find()) {
System.out.println(input[i] + ": accepted");
} else {
System.out.println(input[i] + ": not accepted");
}
}
}
}ผลลัพธ์
Enter 5 input strings: rama raja raghu megha malya rama: not accepted raja: not accepted raghu: accepted megha: accepted malya: accepted
ตัวอย่างที่ 2
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main( String args[] ) {
// นิพจน์ปกติจับคู่สตริง non-word ความยาว 2 ถึง 6
String regex = "\\W{2,6}";
Scanner sc = new Scanner(System.in);
System.out.println("Enter 5 input strings: ");
String input[] = new String[5];
for (int i=0; i<5; i++) {
input[i] = sc.nextLine();
}
Pattern p = Pattern.compile(regex);
for(int i=0; i<5;i++) {
Matcher m = p.matcher(input[i]);
if(m.find()) {
System.out.println(input[i] + " matched");
}
}
}
}ผลลัพธ์ที่ 1
Enter 5 input strings: hello how are you #$#% # #$@%%#&#& sample text #$#% matched #$@%%#&#& matched
ตัวอย่างที่ 3
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String args[] ) {
String regex = "[a-zA-Z]{1,20}";
Scanner sc = new Scanner(System.in);
System.out.println("Enter students name:");
String name = sc.nextLine();
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(name);
if(m.matches()) {
System.out.println("Name is appropriate");
} else {
System.out.println("Name is inappropriate");
}
}
}ผลลัพธ์
Enter students name: Mouktika Name is appropriate