import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(((C|c)h(a|ă|ẵ|ẳ)n)|((L|l)(e|ẻ)))[\\s\\[]*(\\d+\\s?-?\\s?\\d*)[\\s\\]]*([\\w\\s]*)$";
final String string = "Chẵn 0-100 Bạch Đằng\n\n"
+ "Chẵn [0] 2-204 Trần Thanh Mại\n"
+ "Chẳn [0] 460-530 Kinh Dương Vương\n"
+ "Chẳn [0] 460-532 Kinh Dương Vương\n\n"
+ "Chẳn [100-262] Quốc lộ 13\n"
+ "Chẵn 0 - 364 Phố Huế\n"
+ "Chẵn 0 - 44 Tây Tựu\n"
+ "Chẵn 0-100 Bạch Đằng\n"
+ "Chẵn 0-100 Ngõ 124 Âu Cơ\n"
+ "Chẵn 0-110 Đường Vành Đai\n"
+ "Chẵn 0-110 Trâu Quỳ\n"
+ "Chẵn 0-112 Đường Ô Chợ Dừa\n"
+ "Chẵn 0-116 Đường số 8\n"
+ "Chẵn 0-118 Bình Trị Đông\n"
+ "Chẵn 0-128 Nguyễn Sơn\n\n"
+ "Lẻ 1-13 đường Thạnh Lộc 29\n"
+ "Lẻ 1-131 Đường số 4\n"
+ "Lẻ 1-131 Hoàng Hoa Thám\n"
+ "Lẻ 1-131 Kênh Mười Chín Tháng Năm\n"
+ "Lẻ 1-131 Nguyễn Phúc Chu\n"
+ "Lẻ 1-131 Trần Quang Cơ\n"
+ "Lẻ 1-131 Trần Văn Kỷ\n"
+ "Lẻ 1-133 Ấp Chiến Lược\n"
+ "Lẻ 1-133 Bạch Đằng\n"
+ "Lẻ 1-133 Khánh Hội\n"
+ "Lẻ 1-133 Nguyễn Thiện Thuật\n"
+ "Lẻ 1-134 Trần Hưng Đạo\n"
+ "Lẻ 1-135 Đặng Chất\n"
+ "Lẻ 1-135 Hoàng Hoa Thám\n"
+ "Lẻ 1-135 Lý Phục Man\n"
+ "Lẻ 1-135 Nguyễn Phong Sắc, Cầu Giấy, Hà Nội\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html