Hola a tod@s.
Tengo una duda con expresiones regulares.
Supongamos que tengo una expresión regular cualquiera y quiero aplicar la misma expresión pero solo con un pequeño cambio.
Creo que con ejemplo se verá mejor. (Esta expresión regular me la copié de software prefabricado y la coloco solo como ejemplo):
Código PHP:
preg_match_all('~\[img(\s+width=\d+)?(\s+height=\d+)?(\s+width=\d+)?\](.+?)\[/img\]~is', $message, $matches, PREG_PATTERN_ORDER);
Eso se aplica a
img y ¿que tal si quiero aplicárselo a más cosas?. Supongan que quiero aplicar eso mismo, pero para
embed.
Podría hacerlo dos veces
Código PHP:
preg_match_all('~\[img(\s+width=\d+)?(\s+height=\d+)?(\s+width=\d+)?\](.+?)\[/img\]~is', $message, $matches, PREG_PATTERN_ORDER);
preg_match_all('~\[embed(\s+width=\d+)?(\s+height=\d+)?(\s+width=\d+)?\](.+?)\[/embed\]~is', $message, $matches, PREG_PATTERN_ORDER);
Me parece que así haría el trabajo, pero creo que es una tontería duplicar la función en lugar de "jugar" con la expresión. Y este es el punto que no tengo la "certeza" de como jugar con ella.
Hasta ahora creo que así es como me conviene para lo que busco.
Código PHP:
preg_match_all('~\[(?:img|embed)(\s+width=\d+)?(\s+height=\d+)?(\s+width=\d+)?\](.+?)\[/(?:img|embed)\]~is', $message, $matches, PREG_PATTERN_ORDER);
¿Estoy bien? ¿esa mecánica me sirve para el futuro sea la expresión que sea?
Ojalá me respondan, porque en esto es donde ando más en blanco y sin guia. Casi sin importar lo que leo quedo igual
Gracias adelantadas.