regular expression and forward slash

pixeline picture pixeline · Jun 30, 2010 · Viewed 30k times · Source

i'm searching for keywords in a string via a regular expression. It works fine for all keywords, exept one which contains a forward slash in it: "time/emit" .

Even using preg_quote($find,'/'), which escapes it, i still get the message:

Unknown modifier 't' in /frontend.functions.php  on line 71

If i print the find pattern, it shows /time\\/emit/ . Without preg_quote, it shows /time/emit/ and both return the same error message.

Any bit of knowledge would be useful.

Answer

Kamil Szot picture Kamil Szot · Jun 30, 2010

Try to begin and end your regular expression with different sign than /

I personally use `

I've seen people using #

I think most chars are good. You can read more about it here: http://pl.php.net/manual/en/regexp.reference.delimiters.php

Like this:

 preg_match('#time/emit#', $subject);  // instead of /time/emit/

To put it another way: Your $find variable should contain rather #time/emit# than /time/emit/