Bueno, es necesaria si la sustitución potencialmente crea nuevos partidos en la siguiente iteración. No es muy derrochador porque es solo y un control adicional en el peor, sin embargo.
Según el código que coincide, parece poco probable que cree nuevas coincidencias por reemplazo, sin embargo: es muy estricto con respecto a lo que coincide.
EDITAR: Para ser más específico, intenta hacer coincidir un corchete de ángulo de apertura seguido opcionalmente por una barra seguida de una de varias palabras clave seguidas opcionalmente por cualquier número de símbolos que no sean un corchete de ángulo de cierre y finalmente un corchete de ángulo de cierre . Si la entrada sigue esa sintaxis, será tragada entera. Si está mal formado (por ejemplo, múltiples corchetes angulares de apertura y cierre), generará basura hasta que ya no pueda encontrar subcadenas que coincidan con la secuencia inicial.
Entonces, no. A menos que tenga un código como <<iframe>iframe>
, no es necesario repetirlo. Pero entonces está tratando con un nivel de sopa de etiquetas que la expresión regular no es lo suficientemente buena para todos modos (por ejemplo, fallará en el < iframe>
con el espacio adicional).
EDIT2: También es un poco extraño que el patrón coincida con cero o más barras al principio de la etiqueta (debe ser cero o uno). Y si mis conocimientos expresión regular no es demasiado oxidado, la final *+
no tiene mucho sentido, ya sea (el asterisco significa cero o más, significa que el más uno o más, tal vez es una sintaxis codiciosos o algo de fantasía así?).