PHP - 将ereg转换为preg_match

时间:2011-07-03 15:35:34

标签: php ereg

我知道这似乎并不困难,但我的PHP经验非常基础。

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();
}
}

3 个答案:

答案 0 :(得分:1)

在这种情况下,您只需添加delimiters即可。有关详细信息,请阅读Differences from POSIX regex

答案 1 :(得分:0)

在您的情况下,您可以简单地使用strpos()=== operator,甚至substr()。你真的不需要正则表达式来匹配常量字符串。

如果要保留当前代码,只需将表达式用您选择的分隔符括起来即可。所有这些都是有效的:

'/^\./'
'@^\.@'
'#^\.#'

您可以在Pattern SyntaxDifferences from POSIX regex找到更多信息。

答案 2 :(得分: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 = "/[.<[`]/";