0

文字列から数字のパターンを抽出する正規表現を書いています。以下のコード スニペットを実行すると、警告が表示されます。

"preg_match() [<a href='function.preg-match'>function.preg-match</a>]: No ending delimiter '^' "

この警告の理由と修正方法を教えてください。

$temp=0;
$exp=(explode(" ",$message1));
while($temp<sizeof($exp))
{
    if(preg_match("^(+91|0091|0)?[7-9][0-9]{9}$",$exp[$temp]))
    {
    $pat=$exp[$temp];

    }
}
4

1 に答える 1

4

正規表現の区切り文字を忘れました。代わりにこれを使用してください (/正規表現の最初と最後に挿入されます)。

if(preg_match('/^(+91|0091|0)?[7-9][0-9]{9}$/', $exp[$temp]))

エラーが発生した理由は、PHP では任意の区切り文字が許可されているためです。あなたの場合、それは^文字列の最初の文字であるため、使用されています。ただし、正規表現を終了する別のキャレットが見つからなかったため、明らかに機能しませんでした。正規表現自体に意味があるため、とにかく使用^するのは悪い考えです。

于 2012-07-04T19:37:26.823 に答える