2011-07-03 66 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