在PHP中,如何转义作为变量的正则表达式


In PHP how does one escape a regex expression that is a variable?

我有一个变量,它将包含一个相对URL(即../test.html),我想使用该URL变量并将其替换为一个绝对变量。不管怎样,我想知道当字符串包含需要在正则表达式中转义的字符时,是否有更优雅的方法来转义字符串。我得到了以下工作:

str_replace(array(".","/"), array("''.","''/"), $urls[0][$key])

但我认为有一种更好的方法可以通过preg_replace来做到这一点,但我似乎无法让它发挥作用。我尝试了以下使用反向参考:

preg_replace('/['.'/]/i', ''''1', $urls[0][$key])

这似乎不起作用,可能是因为PHP对preg_replace:中的一些字符进行转义的方式

当使用e修饰符时,此函数将转义替换反向引用的字符串中的一些字符(即"、"、''和NULL)。

有人知道我怎样才能让preg_replace工作吗?

谢谢你的帮助!

preg_quote。此外,并非所有事物都是可变的。它不是一个绝对变量,你只是用一个表示绝对路径的字符串替换变量。。