[解決済み] PHPでereg式をpregに変換するにはどうしたらいいですか?
2022-05-11 11:24:05
質問
以来 POSIX正規表現(ereg) は PHP 5.3.0 以降では非推奨となっています。 PCRE (Perl互換正規表現) (preg) .
例として、こんな正規表現があります。
eregi('^hello world');
への表現の変換はどうすればよいのでしょうか?
preg_match
互換性のある表現を教えてください。
注 この投稿は、eregからpregへの変換に関連するすべての投稿のプレースホルダーとして、また、関連する質問の重複オプションとして機能します。 この質問を閉じないでください。
関連する
解決方法は?
構文上の最大の変更点は デリミタ .
ereg('^hello', $str);
preg_match('/^hello/', $str);
デリミタは、英数字、バックスラッシュ、空白文字以外であれば、ほとんど何でも使用できます。最もよく使われるのは、一般に
~
,
/
と
#
.
また、一致する括弧を使用することもできます。
preg_match('[^hello]', $str);
preg_match('(^hello)', $str);
preg_match('{^hello}', $str);
// etc
正規表現の中にデリミターがある場合は、それをエスケープする必要があります。
ereg('^/hello', $str);
preg_match('/^\/hello/', $str);
文字列中のすべての区切り文字や予約文字を簡単にエスケープすることができます。 preg_quote :
$expr = preg_quote('/hello', '/');
preg_match('/^'.$expr.'/', $str);
また、PCREは
モディファイア
を様々なものに使用することができます。最もよく使われるものの1つは、大文字小文字を区別しないモディファイアである
i
の代替となる
電子
:
eregi('^hello', 'HELLO');
preg_match('/^hello/i', 'HELLO');
の完全なリファレンスを見つけることができます。 PHP の PCRE 構文については、マニュアルを参照してください。 と同様に 相違点一覧 POSIX regex と PCRE の間で、式の変換を助けるために使用します。
しかし、あなたの簡単な例では、正規表現を使うことはないでしょう。
stripos($str, 'hello world') === 0
関連
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] PHPでユーザー入力をサニタイズするにはどうすればよいですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み] 非推奨。関数 ereg() は非推奨 [重複] です。
-
[解決済み] 関数ereg_replace()は非推奨です - このバグを取り除くには?重複
-
[解決済み】php 複数のスペースを1つのスペースに置き換える【重複あり