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];
}

こんにちは、みんな[この部分文字列が欲しい]という出力を取得しています。 使用して

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 に答える