Phương thức Matcher
start() - vị trí bắt đầu của match (index 0-based)
end() - vị trí sau ký tự cuối của match
end() - start() = độ dài match
Ví dụ: Tìm vị trí và độ dài dãy số
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatcherExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập văn bản: ");
String input = sc.nextLine();
String regex = "\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
int start = 0, len = -1;
while (matcher.find()) {
start = matcher.start();
len = matcher.end() - start;
}
System.out.println("Vị trí khớp: " + start);
System.out.println("Độ dài khớp: " + len);
}
}
Kết quả
Nhập văn bản: sample data with digits 12345
Vị trí khớp: 24
Độ dài khớp: 5
Lấy vị trí theo group
start(int group) - vị trí bắt đầu của group
end(int group) - vị trí kết thúc của group
Ứng dụng
- Highlight text: tô màu phần khớp trong editor
- Tokenizing: cắt chuỗi theo vị trí chính xác
- Validation: báo lỗi tại vị trí cụ thể