Регулярное выражение и косая черта

Я ищу ключевые слова в строке через регулярное выражение. Он отлично работает для всех ключевых слов, кроме одного, который содержит в себе косую черту: "время/испускать".

Даже используя 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;