我有这样的文字:
line 1/1/1/2
行短语后面的文字是函数的参数,例如当我调用extractData('1/1/1/2' , 'The main text')
时:
function extractData($line, $text)
{
$pattern = "/line(\s+)$line/";
if(preg_match($pattern, $text)) {
// some code
}
}
如何逃避模式中的斜线字符?
换句话说,我该如何编写模式? ($pattern = "/line(\s+)$line/";
)
答案 0 :(得分:6)
您可以使用preg_quote
功能:
$pattern = '/line(\s+)' . preg_quote($line, '/') . '/';
答案 1 :(得分:3)
\Q
and \E
也可用于忽略模式中的正则表达式元字符。
$pattern = '~line(\s+)\Q' . $line . '\E~';
答案 2 :(得分:1)
要使用\
来搜索任何字符,为了逃避/
,请使用\/
如果您想要转义\
,则需要将其转义为\\\