0

文字列のパターンをチェックしようとしています。

$variable = '[text]';

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

このコードはエラーを返しますeregi() [function.eregi]: REG_BADRPT

これに対する解決策は何ですか?

4

2 に答える 2

2

エレギでプレグ風の表現を使っているからです。perl スタイルの区切り記号は必要ありません。

ただし、Mark Byers がコメントしているように、 preg_match を使用することは将来の証明です。

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

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

明確にするために、真珠スタイルの区切り記号は 2 つのスラッシュです。ereg 構文は次のようになります。

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

単純にするために、いつものように正規表現は使用しませんでした。

また、 mb_eregなど、まだ有効なマルチバイトの ereg 関数があることにも言及したいと思います。

于 2010-09-18T23:49:05.263 に答える