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