ホームページ >バックエンド開発 >PHPチュートリアル >PHP で ereg 正規表現を preg に変換するにはどうすればよいですか?
PHP での Ereg から Preg への変換
PHP では、POSIX 正規表現 (ereg) はバージョン 5.3.0 以降非推奨になりました。移行を容易にするためには、古い ereg 式を PCRE (Perl 互換正規表現) (preg) に変換する方法を理解することが重要です。
構文の違い
主な構文違いは、preg にデリミタが追加されていることです。たとえば、次の ereg 式:
eregi('^hello world');
は、次のような preg_match 式に変換する必要があります:
preg_match('/^hello world/', $str);
区切り文字には、英数字以外のさまざまな文字を使用できます。一般的な選択肢は次のとおりです。 ~、/、#。
の一致括弧
さらに、対応する括弧を区切り文字として使用できます。
preg_match('[^hello]', $str); preg_match('(^hello)', $str); preg_match('{^hello}', $str);
エスケープ区切り文字
区切り文字が通常の式の場合は、バックスラッシュ:
eregi('^/hello', $str); preg_match('/^\/hello/', $str);
すべての区切り文字と予約文字をエスケープするには、preg_quote:
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
修飾子
PCRE はさまざまな機能の修飾子をサポートしています。たとえば、大文字と小文字を区別しない修飾子 i は eregi 関数を置き換えます。
eregi('^hello', 'HELLO'); preg_match('/^hello/i', 'HELLO');
変換例
提供された例では、正規表現は必要ありません。代わりに、次の PHP 関数を使用できます:
stripos($str, 'hello world') === 0
以上がPHP で ereg 正規表現を preg に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。