regular preg_match_all preg_grep ejemplos coincidencias buscar php xml parsing rss

php - preg_match_all - preg_match();-Modificador desconocido ''+''



preg_match_all ejemplos php (4)

Esto me sucedió porque puse una variable en la expresión regular y, a veces, su valor de cadena incluía una barra inclinada. Solución: preg_quote() .

Esta pregunta ya tiene una respuesta aquí:

Bien, entonces estoy trabajando actualmente en analizar un feed RSS. Obtuve la información. No necesito ningún problema, y ​​todo lo que me queda es analizar el título del juego.

Aquí está el código que tengo actualmente (ignore el descuido, es solo una prueba de concepto):

<?php $url = ''http://raptr.com/conexion/rss''; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); $xml = new SimpleXMLElement($result); $lastgame = $xml->channel->item[0]->description; preg_match(''[a-zA-Z]+</a>.$'', $lastgame, $match); echo $match; ?>

Todo estaba funcionando bien, pero luego comencé a recibir este error:

Warning: preg_match() [function.preg-match]: Unknown modifier ''+'' in raptr.php on line 14

Lo único que me queda es quitar la etiqueta de anclaje de cierre y el período, pero no puedo entender por qué no me está gustando el ''+''. ¿Algunas ideas?

Editar: Esto no se debe marcar como un duplicado, ya que se solicitó dos años antes de la otra pregunta.


Necesita usar delimitadores con expresiones regulares en PHP. Puede usar / menudo utilizado, pero PHP le permite usar cualquier carácter coincidente, por lo que @ y # son populares.

Lectura adicional .

Si está interpolando variables dentro de su expresión regular, asegúrese de pasar el delimitador que eligió como el segundo argumento para preg_quote() .


Prueba este código:

preg_match(''/[a-zA-Z]+<//a>.$/'', $lastgame, $match); print_r($match);

Usar / como un delimitador significa que también necesita escaparse aquí, así: </ / a>.

ACTUALIZAR

preg_match(''/<a.*<a.*>(.*)</'', $lastgame, $match); echo''[''.$match[1].'']'';

Puede que no sea la mejor manera ...