Myślałem, że zapytam o to jako aktualizację mojego previous similar question, ale stała się ona zbyt długa.Niepotrzebna gwiazdka w wyrażeniu regularnym, która znajduje komentarz CSS
starałem się zrozumieć regex podane w w3.org pasujący css komentarze i mam te wątpliwości
Dlaczego używać
\/\*[^*]*\*+([^/*][^*]*\*+)*\/
----------------^
zamiast tylko
\/\*[^*]*\*+([^/][^*]*\*+)*\/
?
Obie działają podobnie. Dlaczego mają tam dodatkową gwiazdę?
Spójrzmy na tej części:
\*+([^/*][^*]*\*+)* -A- --B-- -C-
silnik Regex będzie analizować częścią i dopasować wszystkie gwiazdy, dopóki nie ma więcej gwiazdek lub jest przerwa linia. Tak więc, gdy A zostanie ukończone, następna postać musi być przerywaną linią lub cokolwiek innego, co nie jest gwiazdą. Dlaczego więc zamiast używać
[^/]
użyli[^/*]
?Zobacz także powtarzającą się grupę przechwytującą.
([każdy jeden char to nie/lub *] [zero lub więcej znaków, że to nie *] [jeden lub więcej gwiazdek])
przechwytuje ona grup znaków kończących się conajmniej jednego lub większej liczby gwiazd. Więc C weźmie wszystkie gwiazdy pozostawiając B bez gwiazdek do dopasowania w następnej rundzie.
Więc część B nie będzie miała szansy na spotkanie z żadną gwiazdą. Dlatego uważam, że nie ma potrzeby umieszczania tam gwiazdy.
Ale ten regex jest w w3.org, więc myślę, że moje zrozumienie może być złe. Proszę wyjaśnij, czego mi brakuje.
OMG! Tak więc miałem rację (i późno, aby się dowiedzieć.) Myślałem tylko, że muszą mieć rację i wyczerpały mój umysł, próbując znaleźć to, czego mi brakuje. Nie sądziłem, że zostałby zmieniony w CSS3. Dzięki. – Vigneshwaran
Tak. Czekam na twój link do każdej odpowiedniej dyskusji. – Vigneshwaran
Nie mogę znaleźć niczego:/ – BoltClock