Bài học theo mô-đun (3/4)
Phủ định: `[^...]`
Đặt dấu mũ ^ làm ký tự đầu tiên bên trong dấu ngoặc
đảo ngược lớp: nó khớp với bất kỳ ký tự nào ngoại trừ những ký tự được liệt kê.
Pattern: [^aeiou]
Sample: ciao mondo
^ ^^ ^[^aeiou] khớp với phụ âm, dấu cách, dấu câu, chữ số\u2026 mọi thứ
không là một nguyên âm.
Ví dụ điển hình
[^\s]-- bất kỳ ký tự "không phải dấu cách" nào (tương đương với\S).[^0-9]-- mọi thứ không phải là chữ số (tương đương với\D).[^"]+-- "một chuỗi ký tự không phải là dấu ngoặc kép" (hữu ích để trích xuất nội dung giữa các dấu ngoặc kép).
Pattern: "([^"]+)"
Sample: Il libro "Il nome della rosa" e' famoso.Nhóm ([^"]+) ghi lại mọi thứ giữa các dấu ngoặc kép dừng lại
trước " tiếp theo: đó là một thủ thuật cổ điển để tránh
vấn đề tham lam và lười biếng.
Các ký tự đại diện phủ định và thay thế
Lớp phủ định [^...] sử dụng chính xác một ký tự KHÔNG thuộc tập hợp được liệt kê. Nó là một công cụ mạnh mẽ để ngăn chặn công cụ chạy qua các dấu phân cách quan trọng, tránh ReDoS gây ra bởi các vòng quay lui vô hạn.
Hãy thử nó
Trích xuất nội dung của mỗi chuỗi giữa các dấu ngoặc kép mà không ghi lại dấu ngoặc kép.
Hiển thị gợi ý
Thay thế .+ bằng [^"]+: theo cách này, trận đấu sẽ dừng ở trích dẫn tiếp theo.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Tìm mọi từ CHỈ được tạo thành từ phụ âm (không có nguyên âm, không có chữ số, không có ký hiệu).
Hiển thị gợi ý
Bên trong dấu ngoặc, bạn có thể kết hợp phủ định nguyên âm với \\W (không phải từ) và \\d (chữ số).
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
Khớp các chuỗi của một hoặc nhiều ký tự, loại trừ rõ ràng khoảng trắng và dấu phẩy.
Hiển thị gợi ý
Sử dụng [^\\s,] với bộ định lượng +.
Giải pháp khả dụng sau 3 lần thử