2012-04-13 15 views
17

He leído múltiples tutoriales en expresiones regulares, pero simplemente no se me pegarán en la cabeza. Nunca puedo hacer que mis patrones funcionen. Espero que alguien pueda ayudar.Php buscar cadena con expresión regular

que tienen una variable php ($ contenido) donde tengo que encontrar un cierto patrón que tiene este aspecto

[Galería :: Nombre/del/de la carpeta//]

me gustaría Búsqueda:

- starting with "[gallery::" 
- any other character (variable length) 
- ending with "]" 

Hasta el momento, en PHP que tengo:

preg_match('/\[gallery\:/', $content, $matches, PREG_OFFSET_CAPTURE); 

puedo encontrar [galería: pero eso es todo . Me gustaría poder encontrar el resto (: nombre/de/la/carpeta /])

¡Se agradece cualquier ayuda! Gracias!

Respuesta

26

Trate de capturarla:

preg_match("/\[gallery::(.*?)]/",$content,$m); 

Ahora $m es una matriz:

0 => [gallery::/name/of/the/folder/] 
1 => /name/of/the/folder/ 
+0

Si la cadena está 'empezando con' algo, asegúrese de anteponer un carácter '^' a "\\ [galería" – AndrewPK

+0

¿no múltiples ocurrencias ([Galería ::/nombre/de/la/carpeta /] [galería ::/nombre/de/la/carpeta /]) causar problemas con el uso de una captura codiciosa en todos los personajes? –

+0

esto coincidirá '[gallery ::]' lo cambiaría a '[gallery :: (. +?)]' – nathanjosiah

2

cambio su expresión regular para

'/\[gallery::([A-Za-z\/]+)\]/' 

Desde que puse la parte de carpeta/ruta entre paréntesis, deberías obtener un grupo de captura de él.

+0

Necesita otro ':', que no necesita escaparse, y si necesita hacer coincidir '/', debe usar otro carácter delimitador como '#' – DaveRandom

+0

'[A-Za-z]' porque una cosa solo coincide con un carácter , pero no coincide con "todos los personajes", y ciertamente no con los permitidos en los nombres de archivo. –

+0

@Kolink, fíjese en el signo + después de los parens –

0
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) { 
    echo "A match was found."; 
} else { 
    echo "A match was not found."; 
} 
Cuestiones relacionadas