在PHP中,如何转义作为变量的正则表达式?
我有一个变量,它将包含一个相对URL(即.../test.html),我想使用该URL变量并用一个绝对变量替换它。无论如何,我想知道当字符串包含需要在正则表达式中转义的字符时,是否有更优雅的方法来转义字符串。我做了以下工作:在PHP中,如何转义作为变量的正则表达式?,php,regex,Php,Regex,我有一个变量,它将包含一个相对URL(即.../test.html),我想使用该URL变量并用一个绝对变量替换它。无论如何,我想知道当字符串包含需要在正则表达式中转义的字符时,是否有更优雅的方法来转义字符串。我做了以下工作: str_replace(array(".","/"), array("\\.","\\/"), $urls[0][$key]) 但我认为有一个更好的方法可以用preg_替换,但我似乎无法让它工作。我使用反向引用尝试了以下操作: preg_replace('/[\.\/]/
str_replace(array(".","/"), array("\\.","\\/"), $urls[0][$key])
但我认为有一个更好的方法可以用preg_替换,但我似乎无法让它工作。我使用反向引用尝试了以下操作:
preg_replace('/[\.\/]/i', '\\\1', $urls[0][$key])
这似乎不起作用,可能是因为PHP在preg_replace中转义某些字符的方式:
当使用e修饰符时,此函数将在替换反向引用的字符串中转义一些字符(即“,”,\和NULL)
有人知道我怎样才能让preg_替换工作吗
感谢您的帮助!。此外,并非所有内容都是变量。它不是绝对变量,您只是将变量替换为表示绝对路径的字符串。。此外,并非所有内容都是变量。它不是绝对变量,您只是将变量替换为表示绝对路径的字符串