Làm thế nào tôi có thể diễn đạt "không đi trước" trong một biểu thức chính quy Java? Ví dụ: tôi muốn tìm kiếm ":" nhưng chỉ khi nó không được đặt trước bởi "\". Tôi có thể làm cái này như thế nào?Làm cách nào để diễn tả ":" nhưng không phải trước "" trong biểu thức chính quy Java?
7
A
Trả lời
14
Sử dụng một negative lookbehind:
"(?<!\\\\):"
Lý do cho bốn dấu xồ nguợc là:
- dấu chéo ngược là một nhân vật đặc biệt trong biểu thức thông thường, do đó bạn cần sự biểu hiện thường xuyên
\\
để phù hợp với một dấu chéo ngược đơn . - dấu gạch chéo ngược phải được thoát trong chuỗi Java, do đó, mỗi dấu gạch chéo ngược ở trên phải được viết là
\\
, cho tổng số là bốn.
Ví dụ mã:
Pattern pattern = Pattern.compile("(?<!\\\\):");
Matcher matcher = pattern.matcher("foo\\:x bar:y");
if (matcher.find()) {
System.out.println(matcher.start());
}
Output:
10
1
Bạn có thử sử dụng một lớp nhân vật với các nhà điều hành bổ sung?
String s1 = "foo : bar";
String s2 = "foo \\: bar";
Pattern p = Pattern.compile("[^\\\\]:");
Matcher m = p.matcher(s1);
if(m.find()) {
System.out.println(m.group());
}
m = p.matcher(s2);
if(m.find()) {
System.out.println(m.group());
}
Các vấn đề liên quan
- 1. Biểu thức chính quy Java, khớp với mọi thứ nhưng
- 2. Biểu thức chính quy Java OR operator
- 3. Làm cách nào để xác thực Biểu thức chính quy?
- 4. Biểu thức chính quy trước không hợp lệ do sed
- 5. Làm cách nào để cung cấp biểu diễn chuỗi không chính thức của một Lớp python (không phải ví dụ)
- 6. Làm thế nào để thoát khỏi văn bản cho biểu thức chính quy trong Java
- 7. Làm thế nào để sử dụng biểu thức chính quy trong classpath java manifest?
- 8. Ngữ pháp không có ngữ cảnh mô tả các biểu thức chính quy?
- 9. Vấn đề hiệu suất biểu thức chính quy Java
- 10. Biểu thức chính quy JavaScript
- 11. Làm cách nào để tạo biểu thức chính quy cho điều này trong android?
- 12. Làm cách nào để bỏ qua khoảng trống trong chuỗi chủ đề biểu thức chính quy?
- 13. Biểu thức chính quy Java cho số âm?
- 14. Biểu thức chính quy java trả về false
- 15. Biểu thức chính quy không tuân thủ
- 16. Biểu thức chính quy java tìm và thay thế
- 17. Java - biểu thức chính quy cho định dạng get số
- 18. Biểu thức chính quy để tìm các không gian
- 19. Làm cách nào để sử dụng biến trong biểu thức chính quy?
- 20. Đây có phải là Java không chính thức không?
- 21. Biểu thức chính quy tiêu cực lookahead
- 22. Hạn chế của Biểu thức chính quy?
- 23. Giải thích về Lookaheads trong Biểu thức chính quy này
- 24. Làm cách nào để biểu diễn một hàm đệ quy với Biểu đồ luồng?
- 25. Có cách nào để đánh giá số lần biểu thức chính quy Perl đã khớp không?
- 26. Quy tắc biểu thức chính quy trong Outlook 2007?
- 27. 6 chữ số biểu thức chính quy
- 28. Biểu thức chính quy kết thúc
- 29. Biểu thức chính quy của Python HOẶC
- 30. Biểu thức chính quy PHP để đối sánh các từ
Điều này không khớp với ':' ở đầu chuỗi. – polygenelubricants