PHP: строка для регулярного выражения - PullRequest
9 голосов
/ 26 марта 2012

Я пытаюсь использовать строку в качестве шаблона регулярного выражения, но у меня появляются следующие ошибки

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

код

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

Я также пытался использовать функцию preg_quote, но у меня похожие проблемы.

Как правильно заставить его работать?

Sultan

Ответы [ 4 ]

13 голосов
/ 26 марта 2012

Используйте preg_quote функцию и шаблон, заключенный в |...|

preg_match("|" . preg_quote($str, "|") . "|", $content->content)
3 голосов
/ 06 декабря 2016

Это сработало для меня

$pattern = "/" . preg_quote($source, "/") . "/";
0 голосов
/ 26 марта 2012

Регулярные выражения содержат набор специальных символов типа \ - *.?$ ^ + () [] и более, вы должны экранировать их от вашей строки перед ее использованием (вы можете добавить \ перед символом)

0 голосов
/ 26 марта 2012

Вы должны покинуть свой лимитер

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