2011-05-03 9 views
8

¿Cómo buscar un valor u otro uso de expresiones regulares:"o" en expresiones regulares, cómo encontrar un valor u otro

Por ejemplo:

[video= SOMETHING NOT IMPORTANT] 
[image= SOMETHING NOT IMPORTANT] 

Así que, o buscar el vídeo o la imagen :

/\[video|image=([^\]]+)\]/i 

¿Cómo se haría esto?

+3

A menudo es más fácil realizar pruebas contra expresiones múltiples, en lugar de intentar combinar las dos en un patrón. – Ether

+1

@Ether Amen a eso. Pasé un año tratando de crear Mothers Of All Regular Expressions, solo para darme cuenta de que las cosas están mucho más limpias si solo coincides en múltiples expresiones regulares separadas. – Contango

Respuesta

8

creo que necesita para envolver video|image en su propia sub-patrón:

/\[(?:video|image)=([^\]]+)\]/i 

El ?: designa un grupo que no captura por lo que su captura/retro-referencia a ([^\]]+) está intacta.

Cuestiones relacionadas