PHP では、正規表現はテキスト内のパターンを一致させるために使用できる非常に強力なツールです。 PHP には、正規表現をより便利かつ高速に操作するための組み込み関数が多数用意されています。
この記事では、PHP で正規表現関数を使用する方法を学習し、次のトピックを取り上げます:
- 正規表現構文
- preg_match 関数
- preg_match_all 関数
- preg_replace 関数
- preg_split 関数
- その他の便利な関数
- 正規表現構文
#正規表現の構文はやや複雑ですが、一度理解すれば、正規表現を使用してテキストの検索や置換を簡単に行うことができます。
PHP では、正規表現の構文には次のメタキャラクターが含まれます:
. 任意の 1 文字を表します
^ 特定の文字または文字列で始まることを表します
$ で始まることを表します特定の文字または文字列の末尾
[] は、指定された文字セットを表します
| は、論理 OR 演算を表します
() は、一致したテキストをキャプチャするために使用されます
は、前の文字または部分式は 0 回または複数回出現できます
- は、前の文字または部分式が 1 回以上出現できることを意味します
- ? 前の文字または部分式は 0 回または 1 回出現できることを意味します
これらのメタ文字に加えて、正規表現はいくつかの特殊文字カテゴリとエスケープ文字もサポートしています。これらは PHP マニュアルに記載されています。
preg_match 関数
preg_match 関数は非常に一般的に使用される関数で、指定された正規表現に一致するテキスト内のパターンを検索するために使用されます。最初に一致した文字列を返します。
以下は preg_match 関数の基本構文です:
preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ] ]] ): int|false
このうち、$pattern は正規表現、$subject は検索対象のテキストです。
たとえば、文字列から最初の「php」という単語を検索したいとします。 preg_match を使用した例を次に示します。
$str = "これは php プログラミングです。";
if (preg_match("/php/", $str)) {
echo "一致が見つかりました ! ";
} else {
echo "Match not found.";
}
出力結果:
Match found!
この例では、 preg_match を使用して、文字列 $str 内のパターン「php」を検索しました。
preg_match_all 関数
preg_match 関数とは異なり、preg_match_all 関数は、指定された正規表現に一致するパターンのテキストを検索し、一致したすべての文字列を返します。
以下は preg_match_all 関数の基本構文です:
preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ] ]] ): int|false
この例では、$pattern は正規表現、$subject は検索するテキストです。 $matches は、一致したすべての文字列を格納する配列です。
たとえば、文字列内のすべての数値を検索したいとします。 preg_match_all 関数を使用した例を次に示します。
$str = "2020 年には 18 人と会い、2019 年には 10 人と会いました。";
preg_match_all("/d /", $ str, $matches);
print_r($matches);
出力結果:
Array
(
[0] => Array ( [0] => 2020 [1] => 18 [2] => 2019 [3] => 10 )
ログイン後にコピー
)
atこの例では、preg_match_all を使用して文字列 $str 内のすべての数値を検索し、print_r 関数を使用して検索された数値を出力します。
preg_replace 関数
preg_replace 関数は、テキスト内の指定された正規表現パターンを検索し、指定された文字列に置換するために使用されます。
以下は preg_replace 関数の基本構文です:
preg_replace (mixed $pattern ,mixed $replacement ,mixed $subject [, int $limit = -1 [, int &$count ]] ) :mixed
この例では、$pattern は正規表現、$replacement は一致したテキストを置換する文字列、$subject は検索されるテキストです。 $limit は置換する最大数です。
たとえば、文字列からすべての数値を削除したいとします。 preg_replace 関数を使用した例を次に示します。
$str = "2020 年には 18 人に会いました。2019 年には 10 人に会いました。";
$pattern = '/d /';
$replacement = '';
echo preg_replace($pattern, $replacement, $str);
出力結果:
で、私は人々に会い、 で、私は
#この例では、preg_replace 関数を使用してすべての数値を検索し、空の文字列に置き換えます。
preg_split 関数
preg_split 関数は、指定された正規表現パターンに基づいてテキスト文字列を分割するために使用されます。
以下は preg_split 関数の基本構文です:
preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array
この例では、$pattern は正規表現、$subject は分割されるテキスト文字列です。 $limit は分割する最大数です。
たとえば、カンマ区切りの文字列を配列に分割したいとします。 preg_split 関数を使用した例を次に示します。
$str = "apple,orange,banana,grape";
$array = preg_split("/,/", $str);
print_r ($array);
出力結果:
Array
(
[0] => apple [1] => orange [2] => banana [3] => grape
ログイン後にコピー
)
この例では、次に従って preg_split 関数を使用します。カンマ 文字列を配列に分割します。
- その他の便利な関数
上記の関数に加えて、PHP には他にも多くの便利な正規表現関数が用意されています。
preg_grep: 配列要素を検索するために使用されます。正規表現に一致し、一致する要素を含む新しい配列を返します。
preg_filter: 正規表現に一致する配列内の要素を検索し、指定された置換文字列で置き換えるのに使用されます。
preg_last_error: 最後の正規表現関数のエラー コードを返します。
- 概要
PHP の正規表現関数は、テキストを簡単に操作するための基本操作の柔軟性と機能を提供します。 PHP でのこれらの関数の使用法と構文を理解することが、正規表現を学習するための第一歩です。
以上がPHP で正規表現関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。