Có cách nào để thay thế regexp bằng nội dung đã sửa đổi của nhóm capture không?
Thí dụ:
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher(text);
resultString = regexMatcher.replaceAll("$1"); // *3 ??
Và tôi muốn thay thế tất cả các lần xuất hiện bằng $ 1 nhân với 3.
biên tập:
Có vẻ như có gì đó không ổn :(
Nếu tôi sử dụng
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher("12 54 1 65");
try {
String resultString = regexMatcher.replaceAll(regexMatcher.group(1));
} catch (Exception e) {
e.printStackTrace();
}
Nó ném IllegalStateException: Không tìm thấy kết quả phù hợp
Nhưng
Pattern regex = Pattern.compile("(\\d{1,2})");
Matcher regexMatcher = regex.matcher("12 54 1 65");
try {
String resultString = regexMatcher.replaceAll("$1");
} catch (Exception e) {
e.printStackTrace();
}
hoạt động tốt, nhưng tôi không thể thay đổi $ 1 :(
biên tập:
Bây giờ, nó đang hoạt động :)