Từ hiểu biết của tôi về cụm từ thông dụng, chuỗi "00 ###" phải khớp với "[0-9]", nhưng không khớp với "^ [0-9] $". Nhưng nó không hoạt động với Java regexp.
Sau một số điều tra về vấn đề này, tôi tìm thấy các thông tin sau (http://www.wellho.net/solutions/java-regular-expressions-in-java.html):
Nó có thể xuất hiện mà Java thông thường biểu thức được mặc định neo với cả a^và $ nhân vật.
Chúng ta có thể chắc chắn điều này đúng cho tất cả các phiên bản của JDK không? Và chế độ này có thể bị tắt (tức là tắt khóa mặc định bằng^và $) không?
Đây không phải là duy nhất đối với Java, BTW. Python, và tôi cũng tin rằng JavaScript, có một số phương thức regex neo theo mặc định, và những phương thức khác thì không. –
@Laurence: Các phương thức 'test()', 'exec()' và 'match()' của JavaScript đều hoạt động giống nhau: nếu bạn muốn khớp với neo, bạn phải tự neo nó. Mặt khác, phương thức 'match()' của Python hoạt động giống như 'lookAt()' của Java; trận đấu được neo vào đầu chuỗi nhưng không được kết thúc. –