Tôi đã nghĩ rằng đây là bản cập nhật cho số previous similar question của mình nhưng quá dài.Dấu hoa thị không cần thiết trong regex tìm thấy nhận xét CSS
Tôi đã cố gắng tìm hiểu một regex được đưa ra trong w3.org phù hợp với ý kiến css và có nghi ngờ này
Tại sao họ sử dụng
\/\*[^*]*\*+([^/*][^*]*\*+)*\/
----------------^
thay vì chỉ
\/\*[^*]*\*+([^/][^*]*\*+)*\/
?
Cả hai đều hoạt động tương tự. Tại sao họ lại có thêm một ngôi sao nữa?
Hãy nhìn vào phần này:
\*+([^/*][^*]*\*+)* -A- --B-- -C-
Regex cơ sẽ phân tích Một phần và phù hợp với tất cả các ngôi sao cho đến khi có sao NO MORE hoặc có một ngắt dòng. Vì vậy, khi A được thực hiện, ký tự tiếp theo phải là ngắt dòng hoặc bất kỳ thứ gì khác không phải là dấu sao. Vậy tại sao thay vì sử dụng
[^/]
họ đã sử dụng[^/*]
?Ngoài ra, hãy xem nhóm chụp lặp lại.
([bất kỳ char một đó không phải/hoặc *] [không hay nhiều ký tự đó không phải là *] [một hoặc nhiều sao])
Nó bắt nhóm ký tự kết thúc với ít nhất một hoặc nhiều ngôi sao. Vì vậy, C sẽ đưa tất cả các ngôi sao rời khỏi B mà không có sao để phù hợp trong vòng tiếp theo.
Vì vậy, phần B sẽ không có cơ hội gặp bất kỳ ngôi sao nào cả. Đó là lý do tại sao tôi nghĩ rằng không cần phải đặt một ngôi sao ở đó.
Nhưng regex đó nằm trong w3.org vì vậy tôi đoán rằng sự hiểu biết của tôi có thể sai. Hãy giải thích những gì tôi đang thiếu.
OMG! Vì vậy, tôi đã đúng (và muộn để tìm hiểu.) Tôi chỉ nghĩ rằng họ phải đúng và kiệt sức tâm trí của tôi cố gắng tìm thấy những gì tôi đang mất tích. Tôi không nghĩ rằng nó đã được thay đổi trong CSS3. Cảm ơn. – Vigneshwaran
Có. Tôi đang chờ liên kết của bạn đến bất kỳ cuộc thảo luận có liên quan nào. – Vigneshwaran
Tôi dường như không thể tìm thấy bất cứ điều gì:/ – BoltClock