Регулярное выражение и косая черта
Я ищу ключевые слова в строке через регулярное выражение. Он отлично работает для всех ключевых слов, кроме одного, который содержит в себе косую черту: "время/испускать".
Даже используя preg_quote($find,'/')
, который ускользает от него, я все равно получаю сообщение:
Unknown modifier 't' in /frontend.functions.php on line 71
Если я напечатаю шаблон поиска, он отобразит /time\\/emit/
. Без preg_quote он показывает /time/emit/
и оба возвращают одно и то же сообщение об ошибке.
Любая информация будет полезной.
Ответы
Ответ 1
Попробуйте начать и закончить регулярное выражение с помощью другого знака, чем /
Я лично использую `
Я видел людей, использующих #
Я думаю, что большинство символов хороши. Подробнее об этом можно прочитать здесь: http://pl.php.net/manual/en/regexp.reference.delimiters.php
Вот так:
preg_match('#time/emit#', $subject); // instead of /time/emit/
Другими словами: ваша переменная $find
должна содержать скорее # time/emit # than/time/emit/
Ответ 2
похоже, что у вас что-то уже ускользает от него.
preg_quote('time/emit') // returns time\/emit
preg_quote('time\/emit') // returns time\\/emit
как хак, который вы могли бы просто сделать:
preg_quote(stripslashes($find)) // will return time\/emit
Ответ 3
бит кода?
"регулярное выражение" для этого конкретного термина должно выглядеть примерно так: "/time/emit/". С набором ключевых слов может быть более эффективный метод, поэтому, видя, что вы делаете, будет хорошо.
Ответ 4
это должно работать:
$a="Hello////////";
$b=str_replace($a,"//","/");
echo $b;