Nếu bạn cần tìm một từ hoặc chuỗi con, một giải pháp tốt là sử dụng toán tử điều khiển từ bộ công cụ
biểu thức chính quy . Nó không thể thiếu khi bạn cần tìm thứ gì đó nối tiếp thứ khác.
Ví dụ đơn giản
String str = "программируем"; Pattern p = Pattern.compile(".*программ(?=ируем).*"); Matcher m = p.matcher(str); if(m.matches()){ System.out.println("Нашел!"); }else{ System.out.println("Не нашел!"); }
1. Tìm kiếm từ phía trước
Trong ví dụ trên, nếu bạn cần tìm “programming” nhưng không cần tìm “programming” bạn nên sử dụng mẫu sau:
.*программ(?=ируем).*
?= – tìm kiếm phía trước sự hiện diện của một từ/một phần của từ; ?! – tìm kiếm từ phía trước để tìm sự vắng mặt của một từ/một phần của từ.
2. Tìm kiếm từ phía sau
Tìm kiếm từ phía sau hoạt động theo cách tương tự. Bạn cần sử dụng ?<= để tìm kiếm một từ/một phần của từ đằng sau nó và ? .*(?<=programs)we.* Từ “chương trình” phù hợp với mẫu này, nhưng từ “đánh bóng” thì không.
GO TO FULL VERSION