有一个PHP函数,可以逃避正则expression式模式之前,他们被应用?

有一个PHP函数,可以逃避正则expression式模式之前,他们被应用?

我正在寻找的东西沿C# Regex.Escape()函数的行。

preg_quote()是你在找什么:

描述

 string preg_quote ( string $str [, string $delimiter = NULL ] ) 

preg_quote()需要str并在正则expression式语法中的每个字符的前面放置一个反斜杠。 如果您需要在某些文本中匹配运行时string,并且该string可能包含特殊的正则expression式字符,这非常有用。

特殊的正​​则expression式字符是: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

参数

海峡

inputstring。

分隔符

如果指定了可选的分隔符,它也将被转义。 这对于转换PCREfunction所需的分隔符非常有用。 /是最常用的分隔符。

重要的是,请注意,如果没有指定$delimiter参数, 分隔符 (用于包含正则expression式的字符,通常是正斜杠( / ))将不会被转义。 您通常会想要将正在使用的$delimiter作为$delimiterparameter passing给正则expression式。

示例 – 使用preg_match查找由空白包围的给定URL的出现次数:

 $url = 'http://stackoverflow.com/questions?sort=newest'; // preg_quote escapes the dot, question mark and equals sign in the URL (by // default) as well as all the forward slashes (because we pass '/' as the // $delimiter argument). $escapedUrl = preg_quote($url, '/'); // We enclose our regex in '/' characters here - the same delimiter we passed // to preg_quote $regex = '/\s' . $escapedUrl . '\s/'; // $regex is now: /\shttp\:\/\/stackoverflow\.com\/questions\?sort\=newest\s/ $haystack = "Bla bla http://stackoverflow.com/questions?sort=newest bla bla"; preg_match($regex, $haystack, $matches); var_dump($matches); // array(1) { // [0]=> // string(48) " http://stackoverflow.com/questions?sort=newest " // }