tôi muốn tìm xem một mẫu cụ thể có tồn tại trong tệp văn bản của tôi hay không.Làm thế nào phù hợp với một mẫu trong văn bản bằng cách sử dụng máy quét và lớp mẫu?
im sử dụng các lớp học sau đây cho việc này:
java.util.regex.Pattern and java.util.Scanner;
Dòng văn bản mẫu của tôi là
String Line="DBREF 1A1F A 102 190 UNP P08046 EGR1_MOUSE 308 396";
và, tôi muốn để phù hợp với loại sau đây của các mẫu:
A 102 190
ở đâu, tại vị trí của az hoặc AZ nhưng điều lệ duy nhất.
ở vị trí 102 của bất kỳ số nguyên và chiều dài bất kỳ.
ở vị trí 190 của bất kỳ số nguyên và chiều dài bất kỳ.
và Mã của tôi cho phù hợp với mô hình là:
Scanner sr=new Scanner(Line);
Pattern p = Pattern.compile("\\s+([a-zA-Z]){1}\\s+\\d{1,}\\s+\\d{1,}\\s+");
while(sr.hasNext(p))
{
System.out.println("Pattern exists");
System.out.println("Matched String : "+sr.next(p));
}
nhưng, mẫu không phù hợp ngay cả khi nó tồn tại ở đó ..
tôi nghĩ rằng vấn đề là với chuỗi mô hình của tôi:
\\s+([a-zA-Z]){1}\\s+\\d{1,}\\s+\\d{1,}\\s+"
ai, Plz giúp tôi những gì chuỗi mẫu nên tôi sử dụng ????
vẫn không làm việc .. tôi nghĩ rằng vấn đề là với các đối số Pattern.compile –
Họ làm việc tốt cho tôi. Một chút tiết có lẽ, nhưng họ nên làm việc. Hãy thử một chương trình thử nghiệm được biên dịch nhỏ như được hiển thị ở trên. –
có u thử với dòng này: - DBREF 1A1F Một 102 190 UNP P08046 EGR1_MOUSE 308 396 –