2011-07-03 3 views
2

私はそれが難しいとは思えませんが、私のPHPの経験は非常に基本的です。PHP - eregをpreg_matchに変換する

foreach ($name as $name) 
{ 
if (preg_match("^\.",$name)) { 
echo "bla bla bla"; 
Die(); 
} 
if (preg_match("\<", $name)) { 
echo "bla bla bla"; 
Die(); 
} 
if (preg_match("\[", $name)) { 
echo "bla bla bla"; 
Die(); 
} 
if (preg_match("\`", $name)) { 
echo "bla bla bla"; 
Die(); 
} 
} 

答えて

0

あなたの場合は、strpos()=== operator、さらにはsubstr()を簡単に使用できます。定数文字列に一致する正規表現は実際には必要ありません。

現在のコードを保持したい場合は、選択した区切り文字で式を囲むだけで済みます。これらはすべて有効です。

'/^\./' 
'@^\[email protected]' 
'#^\.#' 

あなたがPattern SyntaxDifferences from POSIX regexでさらに情報を見つけることができます。

+0

感謝の男を、今私は初心者として、これを使用しますために私は更新と同じコードを残すことを好む – Hatem

0

preg_match関数にはデリミタが必要です。 区切り文字には、文字列の先頭と末尾にあるものと同じものを指定できます。

例:あなたのケースで

$RegExp = "/My regular expression"; 
$RegExp = "#My Regular expression#"; 
$RegExp = "%My Regular expression%"; 

$isMatched = preg_match($RegExp, $target, $matched); 

if($isMatched) { 
    print_r($matched); 
} else { 
    //FAIL 
} 

、あなたは簡単に作ることができます。

$RegExp = "/(\.|\<|\[|\`)/"; 

または

$RegExp = "/[.<[`]/"; 
+0

ありがとう、これは私のコードを短縮します:D – Hatem