Computer >> Máy Tính >  >> Lập trình >> Java

Phương thức Matcher hasTransparentBounds () trong Java với các ví dụ

Lớp java.util.regex.Matcher đại diện cho một công cụ thực hiện các hoạt động so khớp khác nhau. Không có hàm tạo nào cho lớp này, bạn có thể tạo / lấy một đối tượng của lớp này bằng cách sử dụng phương thức match () của lớp java.util.regex.Pattern.

Trong biểu thức chính quy, các cấu trúc lookbehind và lookahead được sử dụng để khớp với một mẫu cụ thể đứng trước hoặc kế tiếp trong một số mẫu khác. Ví dụ:nếu bạn cần chấp nhận một chuỗi chấp nhận từ 5 đến 12 ký tự thì biểu thức chính quy sẽ là -

 "\\ A (? =\\ w {6,10} \\ z)"; 

Theo mặc định, các ranh giới của vùng đối sánh không trong suốt đối với các cấu trúc nhìn trước, nhìn sau và đối sánh ranh giới, tức là các cấu trúc này không thể khớp với nội dung của văn bản đầu vào ngoài ranh giới vùng -

hasTransparentBounds () phương thức của phương thức lớp này xác minh xem trình đối sánh hiện tại có sử dụng các giới hạn trong suốt hay không, nếu có, nó trả về true, ngược lại, nó trả về false.

Ví dụ 1

 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasTransparentBounds {public static void main (String [] args) {// Biểu thức chính quy để chấp nhận 6 tới 10 ký tự Chuỗi regex ="\\ A (? =\\ w {6,10} \\ z)"; System.out.println ("Nhập từ 5 đến 12 ký tự:"); Đầu vào chuỗi =new Scanner (System.in) .next (); // Tạo đối tượng mẫu Mẫu pattern =Pattern.compile (regex); // Tạo đối tượng Matcher Matcher matcher =pattern.matcher (input); // Thiết lập vùng thành chuỗi đầu vào matcher.region (0, 4); if (matcher.find ()) {System.out.println ("Tìm thấy khớp"); } else {System.out.println ("Không tìm thấy đối sánh"); } boolean bool =matcher.hasTransparentBounds (); // Chuyển sang giới hạn trong suốt if (bool) {System.out.println ("Trình so khớp hiện tại sử dụng giới hạn trong suốt"); } else {System.out.println ("Giới hạn không minh bạch của người dùng đối sánh hiện tại"); }}} 

Đầu ra

 Nhập 5 đến 12 ký tự:sampletextMatch not found 

Ví dụ 2

 import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasTransparentBounds {public static void main (String [] args) {// Biểu thức chính quy để chấp nhận 6 tới 10 ký tự Chuỗi regex ="\\ A (? =\\ w {6,10} \\ z)"; System.out.println ("Nhập từ 5 đến 12 ký tự:"); Đầu vào chuỗi =new Scanner (System.in) .next (); // Tạo đối tượng mẫu Mẫu pattern =Pattern.compile (regex); // Tạo đối tượng Matcher Matcher matcher =pattern.matcher (input); // Thiết lập vùng thành chuỗi đầu vào matcher.region (0, 4); matcher.useTransparentBounds (true); if (matcher.find ()) {System.out.println ("Tìm thấy khớp"); } else {System.out.println ("Không tìm thấy đối sánh"); } boolean bool =matcher.hasTransparentBounds (); // Chuyển sang giới hạn trong suốt if (bool) {System.out.println ("Trình so khớp hiện tại sử dụng giới hạn trong suốt"); } else {System.out.println ("Giới hạn không minh bạch của người dùng đối sánh hiện tại"); }}} 

Đầu ra

 Nhập 5 đến 12 ký tự:sampletextMatch foundCó đối sánh hiện tại sử dụng các giới hạn minh bạch