Cóż, jest to konieczne, jeśli zamiennik potencjalnie tworzy nowe dopasowania w kolejnej iteracji. Nie jest to zbyt marnotrawstwem, ponieważ jest to jedyny i dodatkowy czek w najgorszym.
Przechodząc po kodzie, który pasuje, wydaje się mało prawdopodobne, że utworzy nowe dopasowania przez zastąpienie, jednak: jest bardzo ścisły o tym, co pasuje.
EDYCJA: Bardziej szczegółowo, próbuje dopasować nawias otwierający opcjonalnie, po którym następuje ukośnik, po którym następuje jedno z wielu słów kluczowych, po którym ewentualnie następuje dowolna liczba symboli, które nie są nawiasami zamykającymi, a wreszcie nawiasami zamykającymi . Jeśli dane wejściowe będą zgodne z tą składnią, zostanie ona połknięta w całości. Jeśli jest zniekształcony (na przykład wiele nawiasów otwierających i zamykających), generuje śmieci, dopóki nie będzie w stanie znaleźć ciągów pasujących do początkowej sekwencji.
Tak, nie. Jeśli nie masz kodu takiego jak <<iframe>iframe>
, powtórzenie nie jest konieczne. Ale wtedy masz do czynienia z poziomem zupy tagów, ale wyrażenie regularne nie jest wystarczająco dobre (np. Nie powiedzie się na < iframe>
z dodatkową przestrzenią).
EDIT2: To również trochę dziwne, że wzór pasuje do zero lub więcej ukośników na początku tagu (powinien wynosić zero lub jeden). A jeśli moja wiedza na temat regex nie jest zbyt zardzewiała, ostateczny *+
również nie ma większego sensu (gwiazdka oznacza zero lub więcej, plus oznacza jeden lub więcej, może to chciwa składnia lub coś takiego?).