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.
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 ...
Puede ser que esto sea útil para usted: ReGExp editor en línea