Nhìn là xác nhận chiều rộng bằng không. Họ kiểm tra regex (về phía bên phải hoặc bên trái của vị trí hiện tại - dựa trên trước hoặc sau), thành công hay thất bại khi tìm thấy kết quả khớp (dựa trên việc nó là dương hay âm) và loại bỏ phần khớp. Họ không tiêu thụ bất kỳ ký tự nào - việc khớp với regex theo sau họ (nếu có), sẽ bắt đầu ở cùng một vị trí con trỏ.
Đọc thường xuyên- express.info để biết thêm chi tiết.
Cú pháp:
(?=REGEX_1)REGEX_2
Chỉ khớp nếu REGEX_1 khớp; sau khi khớp với REGEX_1, trận đấu bị loại bỏ và việc tìm kiếm REGEX_2 bắt đầu ở cùng một vị trí.
thí dụ:
(?=[a-z0-9]{4}$)[a-z]{1,2}[0-9]{2,3}
REGEX_1 [a-z0-9]{4}$
phù hợp với bốn ký tự chữ và số theo sau là cuối dòng.
REGEX_2 [a-z]{1,2}[0-9]{2,3}
phù hợp với một hoặc hai chữ cái theo sau hai hoặc ba chữ số.
REGEX_1 đảm bảo rằng độ dài của chuỗi thực sự là 4, nhưng không tiêu thụ bất kỳ ký tự nào để việc tìm kiếm REGEX_2 bắt đầu tại cùng một vị trí. Bây giờ REGEX_2 đảm bảo rằng chuỗi khớp với một số quy tắc khác. Nếu không nhìn về phía trước, nó sẽ khớp với các chuỗi có độ dài ba hoặc năm.
Cú pháp:
(?!REGEX_1)REGEX_2
Chỉ khớp nếu REGEX_1 không khớp; sau khi kiểm tra REGEX_1, việc tìm kiếm REGEX_2 bắt đầu ở cùng một vị trí.
thí dụ:
(?!.*\bFWORD\b)\w{10,30}$
Phần nhìn về phía trước kiểm tra FWORD
chuỗi trong và thất bại nếu nó tìm thấy nó. Nếu không tìm thấy FWORD
, phần nhìn về phía trước thành công và phần sau sẽ xác minh rằng độ dài của chuỗi nằm trong khoảng từ 10 đến 30 và nó chỉ chứa các ký tự từa-zA-Z0-9_
Nhìn phía sau tương tự như nhìn phía trước: nó chỉ nhìn phía sau vị trí con trỏ hiện tại. Một số hương vị regex như javascript không hỗ trợ các xác nhận nhìn phía sau. Và hầu hết các hương vị hỗ trợ nó (PHP, Python, v.v.) đều yêu cầu phần nhìn phía sau phải có độ dài cố định.
- Các nhóm nguyên tử về cơ bản loại bỏ / quên các mã thông báo tiếp theo trong nhóm một khi mã thông báo khớp. Kiểm tra trang này để biết ví dụ về các nhóm nguyên tử