文字列のパターンをチェックしようとしています。
$variable = '[text]';
if (eregi("/(\[(.*?)\])/", $variable)) {}
このコードはエラーを返しますeregi() [function.eregi]: REG_BADRPT
これに対する解決策は何ですか?
エレギでプレグ風の表現を使っているからです。perl スタイルの区切り記号は必要ありません。
ただし、Mark Byers がコメントしているように、 preg_match を使用することは将来の証明です。
<?php
$variable = '[text]';
if (preg_match("/(\[(.*?)\])/", $variable)) {
echo 'ok';
}
明確にするために、真珠スタイルの区切り記号は 2 つのスラッシュです。ereg 構文は次のようになります。
<?php
$str = 'abc';
if (ereg('a', $str))
{
echo 'match found'; // match found
}
?>
単純にするために、いつものように正規表現は使用しませんでした。
また、 mb_eregなど、まだ有効なマルチバイトの ereg 関数があることにも言及したいと思います。