0

试图检查字符串的模式。

$variable = '[text]';

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

此代码给出错误eregi() [function.eregi]: REG_BADRPT

解决方案是什么?

4

2 回答 2

2

这是因为您在 eregi 中使用了 preg 样式表达式。您不需要 perl 风格的分隔符。

然而,正如 Mark Byers 所说,使用 preg_match 是未来的证明。

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

if (preg_match("/(\[(.*?)\])/", $variable)) {
    echo 'ok';
}
于 2010-09-17T23:35:33.833 回答
0

澄清一下,珍珠样式的定界符是两个斜线。这是 ereg 语法的样子:

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

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

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

于 2010-09-18T23:49:05.263 回答