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

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

Barbara Streisand
リリース: 2024-12-20 15:02:14
オリジナル
293 人が閲覧しました

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート