2012-03-26 18 views
7

Trato utilización cadena como un patrón de expresión regular, pero tengo siguientes erroresPHP: cadena para regex

PHP Warning: preg_match(): Unknown modifier '>' in /Applications/MAMP/htdocs/cruncher/Plugins/wordpress/WPDetect.php on line 22 
PHP Warning: preg_match(): Unknown modifier '/' in /Applications/MAMP/htdocs/cruncher/Plugins/wordpress/WPDetect.php on line 22 

El código

$str = "<meta name=\"generator\" content=\"WordPress.com\" />" 
preg_match("/".$str."/", $content->content) 

También he tratado de utilizar la función preg_quote pero no tengo problemas similares

¿Cuál es la forma correcta de hacerlo funcionar?

Sultan

Respuesta

11

Uso preg_quote y el patrón cerrado con |...|

preg_match("|" . preg_quote($str, "|") . "|", $content->content) 
+0

Gracias @piotrekkr funcionó – sultan

+0

seguro que no pudo aceptar una respuesta durante aproximadamente 8 minutos) – sultan

+0

Bien, lo siento, no sabía que había un límite de tiempo :) – piotrekkr

0

Debe escapar de su función de limitador

$str = "<meta name=\"generator\" content=\"WordPress.com\" \/>" 
0

Expresión regular contener un conjunto de carbón especial como \ - *. ? $^+() [] Y más, usted tiene que escapar de ellos de la cadena antes de usarlo (que Esacpe mediante la adición de una \ antes de que el carbón de leña)

1

Esto funcionó para mí

$pattern = "/" . preg_quote($source, "/") . "/";