Bài học theo mô-đun (3/4)
Nhìn phía sau: `(?<=...)` `(?<!...)`
Cái nhìn phía sau là hình ảnh phản chiếu của cái nhìn phía trước: chúng nhìn trước vị trí hiện tại, vẫn có chiều rộng bằng 0.
(?<=...)-- cái nhìn tích cực về phía sau: mẫu phải có trước.(?<!...)-- cái nhìn tiêu cực: mẫu KHÔNG được đặt trước.
Pattern: (?<=\$)\d+
Sample: Costo $100, sconto -25, totale $75.
^^^ ^^$ không khớp nhưng hoạt động như một điều kiện: chỉ có các chữ số
trước so khớp với ký hiệu đô la.
Cái nhìn tiêu cực phía sau
Pattern: (?<!\w)\d+
Sample: Codice abc123 e numero 456.
^^^(?<!\w) yêu cầu trước các chữ số KHÔNG có ký tự từ:
abc123 bị loại trừ (trước 123 có c, \w), 456 kết quả phù hợp (trước
có một khoảng trống).
Sự khác biệt chính so với nhóm không chụp
\\$\\d+ matches "$100": the match includes the dollar sign.
(?<=\\$)\\d+ matches "100": the match contains ONLY the digits.Nếu bạn cần trích xuất giá trị "sạch" mà không có tiền tố, lookbehind là sự lựa chọn đúng đắn
Khả năng tương thích phía sau trong JavaScript
(?<=...) dương và (?<!...) âm, kiểm tra phía sau những gì đứng trước vị trí hiện tại. Trong JavaScript, chúng được hỗ trợ bắt đầu từ ES2018; trong các trình duyệt cũ hơn hoặc các công cụ Node.js cũ, chúng có thể gây ra lỗi biên dịch cú pháp.
Hãy thử nó
Chỉ trích xuất số tiền (không có dấu $) từ giá trong văn bản.
Hiển thị gợi ý
Di chuyển \\$ bên trong một cái nhìn tích cực (?<=\\$): một điều kiện vị trí, không phải là một phần của trận đấu.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Tìm mọi chuỗi chữ số KHÔNG có chữ cái hoặc chữ số đứng trước (tức là các số 'bị cô lập', không phải các phần của mã như `abc123`).
Hiển thị gợi ý
Sử dụng giao diện phủ định (?<!\\w) để loại trừ khi có một chữ cái hoặc chữ số trước đó.
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
Find only the digits of negative numbers (digits preceded by the `-` sign), excluding the minus sign from the match.
Hiển thị gợi ý
Di chuyển dấu trừ - bên trong hình ảnh tích cực phía sau (?<=-).
Giải pháp khả dụng sau 3 lần thử