(?<=x)
có nghĩa là gì trong regex?(? <= X) có nghĩa là gì trong regex?
Nhân tiện, tôi đã đọc hướng dẫn sử dụng here.
(?<=x)
có nghĩa là gì trong regex?(? <= X) có nghĩa là gì trong regex?
Nhân tiện, tôi đã đọc hướng dẫn sử dụng here.
Đó là positive lookbehind.
(?<=a)b
(lookbehind dương) phù hợp vớib
(và chỉ cób
) trongcab
, nhưng không phù hợp vớibed
hoặcdebt
.
Bạn sẽ không tìm thấy nó trong bất kỳ thủ JavaScript vì nó not supported in JavaScript regex:
Cuối cùng, hương vị như JavaScript, Ruby và Tcl không hỗ trợ lookbehind ở tất cả, mặc dù họ làm hỗ trợ lookahead.
Từ các tài liệu Python re
:
(?<=...)
Matches nếu vị trí hiện tại trong chuỗi được đi trước bởi một trận đấu cho
...
rằng kết thúc tại vị trí hiện tại. Đây được gọi là xác nhận tích cực.(?<=abc)def
sẽ tìm thấy kết quả phù hợp trongabcdef
, vì giao diện sẽ sao lưu 3 ký tự và kiểm tra xem mẫu có chứa phù hợp hay không. Mẫu được chứa phải chỉ khớp với các chuỗi có độ dài cố định, nghĩa làabc
hoặca|b
được phép, nhưnga*
vàa{3,4}
thì không. Lưu ý rằng các mẫu bắt đầu với xác nhận lookbehind dương sẽ không bao giờ khớp ở đầu chuỗi đang được tìm kiếm; nhiều khả năng bạn sẽ muốn sử dụng tìm kiếm() chức năng chứ không phải là trận đấu function():
>>> import re
>>> m = re.search('(?<=abc)def', 'abcdef')
>>> m.group(0)
'def'
Ví dụ này sẽ tìm kiếm một từ sau một gạch nối:
>>> m = re.search('(?<=-)\w+', 'spam-egg')
>>> m.group(0)
'egg'
Zero-width lookbehind tích cực. Các kết quả phù hợp ở vị trí nếu mẫu bên trong bề ngoài có thể được kết hợp ở vị trí đó (tức là ở bên trái của vị trí đó). Tùy thuộc vào hương vị regex bạn đang sử dụng, bạn có thể không thể sử dụng định lượng và/hoặc thay đổi bên trong lookbehind.
Nó được gọi là một cái nhìn tích cực phía sau, nó nhìn về phía sau cho ký tự x, lưu ý rằng điều này không được hỗ trợ bởi javascript. Để tham khảo trong tương lai, here's a better manual :)
cảm ơn phản hồi nhanh. – mays
FYI, kể từ phiên bản 1.9 Ruby hỗ trợ lookbehind. –
+1 Để đề cập đến sự hỗ trợ của JavaScript đối với tính năng biểu thức chính quy này. – Gumbo