1

我有一个字符串变量

$input = "Hello everybody [ I want this sub string ]. Hi. How are you?";

和一个函数来获取字符之间的子字符串

function getSubstring($input, $start, $end)
{
    preg_match("~".$start."(.*?)".$end."~", $input, $output);

    return $output[1];
}

我得到输出hello 每个人 [我想要这个子字符串]。 使用

echo getSubstring($input, 'H', 'H');

但没有输出

echo getSubstring($input, '[', ']'); 

因为 '[' 和 ']' 是空格字符

要获得两个输出如何修改以下行

preg_match("~".$start."(.*?)".$end."~", $input, $output);

请帮我。

4

1 回答 1

0

您需要preg_quote()用于转义特殊字符,它们是:

. \ + * ? [ ^ ] $ ( ) { } = !< > | : -

$input = "Hello everybody [ I want this sub string ]. Hi. How are you?";
function getSubstring($input, $start, $end)
{

    preg_match("~".preg_quote($start)."(.*?)".preg_quote($end)."~", $input, $output);
    return $output[1];
}
echo getSubstring($input, '[', ']');//I want this sub string 
于 2013-09-08T07:08:31.363 回答