PHP正则表达式匹配给出错误

时间:2010-09-17 23:08:46

标签: php eregi

尝试检查字符串的模式。

$variable = '[text]';

if (eregi("/(\[(.*?)\])/", $variable)) {}

此代码提供错误eregi() [function.eregi]: REG_BADRPT

解决方法是什么?

2 个答案:

答案 0 :(得分:2)

这是因为你在eregi中使用preg样式表达式。你不需要perl样式分隔符。

然而,正如Mark Byers评论的那样,使用preg_match是未来的证明。

<?php
$variable = '[text]';

if (preg_match("/(\[(.*?)\])/", $variable)) {
    echo 'ok';
}

答案 1 :(得分:0)

只是为了澄清,珍珠式的延迟是两个斜线。这就是ereg语法的样子:

<?php
$str = 'abc';
if (ereg('a', $str))
{
  echo 'match found'; // match found
}
?> 

我没有像往常那样使用正则表达式,只是为了简单起见。

我还想提一下,有多字节的ereg函数仍然有效,例如mb_ereg