PHP 正規表現(Regular Expression)関数
PHP 正規表現の紹介
正規表現を使用すると、文字列内のパターンを検索して置換できます。
インストール
PHP 正規表現関数は、PHPコアの一部です。これらの機能を使用するためにインストールは必要ありません。
ランタイム構成
php.iniのこれらの設定を使用して、正規表現を評価するときに使用される時間またはリソースを制限できます。
名前 |
デフォルト |
説明 |
変更可能 |
---|---|---|---|
pcre.backtrack_limit | 「1000000」 | 式の評価中に正規表現エンジンが実行できるバックトラックの最大数。 (PHP 5.2以降で利用可能) | PHP_INI_ALL |
pcre.recursion_limit | 「100000」 | 式の評価中に正規表現エンジンが到達できる再帰の最大深度。 (PHP 5.2 以降で利用可能) | PHP_INI_ALL |
pcre.jit | 「1」 | 「1」に設定すると、PCRE (Perl 互換正規表現)のジャストインタイム コンパイルが有効になります。 (PHP 7.0以降で利用可能) | PHP_INI_ALL |
PHP 正規表現関数
関数 |
説明 |
---|---|
preg_filter() | パターン一致が見つかった場合にのみ、パターン一致が置換された文字列または配列を返します |
preg_grep() | パターンに一致した入力配列の要素のみで構成される配列を返します |
preg_last_error() | 最新の正規表現呼び出しが失敗した理由を示すエラーコードを返します |
preg_match() | 文字列内のパターンの最初の一致を検索します |
preg_match_all() | 文字列内のパターンのすべての一致を検索します |
preg_replace() | 指定された文字列内のパターン(またはパターンの配列)の一致が部分文字列(または部分文字列の配列)に置き換えられた文字列を返します。 |
preg_replace_callback() | 式とコールバックを指定すると、式のすべての一致がコールバックによって返された部分文字列に置き換えられた文字列を返します |
preg_replace_callback_array() | 式をコールバックに関連付ける配列を指定すると、各式のすべての一致がコールバックによって返された部分文字列に置き換えられた文字列を返します |
preg_split() | 正規表現の一致をセパレータとして使用して、文字列を配列に分割します |
preg_quote() | 正規表現で特殊な意味を持つ文字の前にバックスラッシュを付けてエスケープします |
正規表現修飾子
修飾子は、検索の実行方法を変更できます。
Modifier(修飾子) |
説明 |
---|---|
i | 大文字と小文字を区別しない検索を実行します |
m | 複数行検索を実行します(複数行を検索するパターン
文字列の先頭または末尾は、先頭または末尾と一致します |
u | UTF-8でエンコードされたパターンの正しい一致を有効にします |
正規表現パターン
ブラケットは、文字の範囲を見つけるために使用されます。
表現 |
説明 |
---|---|
[abc] | 括弧内のオプションから1 文字を見つけます |
[^abc] | 角括弧の間にない任意の文字を検索します |
[0-9] | 0から9の範囲から1文字を検索します |
メタキャラクター
メタ文字は、特別な意味を持つ文字です。
メタキャラクター |
説明 |
---|---|
| | | | で区切られたパターンのいずれかに一致するものを見つけます。次のように: cat|dog|fish |
. | 任意の文字のインスタンスを1つだけ検索する |
^ | ^Helloのように、文字列の先頭として一致を検索します。 |
$ | 次のように、文字列の末尾で一致を検索します: World$ |
\d | 数字を見つける |
\s | 空白文字を見つける |
\b | 次のような単語の先頭で一致を検索します: \bWORD、または次のような単語の末尾: WORD\b |
\uxxxx | 16進数xxxxで指定されたUnicode文字を検索します |
数量子(Quantifiers)
数量子は量を定義します:
数量子 | 説明 |
---|---|
n+ | 少なくとも1つのnを含む任意の文字列に一致します |
n* | 0回以上のnの出現を含む任意の文字列に一致します |
n? | nの0回または1回の出現を含む任意の文字列に一致します。 |
n{x} | xnのシーケンスを含む文字列にマッチする。 |
n{x,y} | XからYのnのシーケンスを含む文字列にマッチする。 |
n{x,} | 少なくともXnのシーケンスを含む任意の文字列に一致します |
注:式で特殊文字の1つを検索する必要がある場合は、バックスラッシュ ( \ )を使用してそれらをエスケープできます。たとえば、1つまたは複数の疑問符を検索するには、次の式を使用できます: $pattern = '/\?+/' ;
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。