ホームページ >バックエンド開発 >PHPチュートリアル >PHP で ereg 正規表現を preg に変換するにはどうすればよいですか?

PHP で ereg 正規表現を preg に変換するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-20 15:02:14238ブラウズ

How to Convert ereg Regular Expressions to preg in PHP?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。