From a8f00fa348a91aa5992c40110855ffce6a36f91f Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 13 Jan 2025 22:05:04 +0900 Subject: [PATCH] =?UTF-8?q?[PHP=208.4]=20PCRE=20-=20PCRE2-v10.44=20updates?= =?UTF-8?q?=20=E3=82=92=E5=8F=96=E3=82=8A=E8=BE=BC=E3=81=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/pcre/pattern.modifiers.xml | 18 +++++++++++++++++- reference/pcre/pattern.syntax.xml | 20 ++++++++++++++++---- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/reference/pcre/pattern.modifiers.xml b/reference/pcre/pattern.modifiers.xml index eb8d9aa693..87b579a6d4 100644 --- a/reference/pcre/pattern.modifiers.xml +++ b/reference/pcre/pattern.modifiers.xml @@ -1,6 +1,6 @@ - +
パターン修飾子 @@ -181,6 +181,22 @@ + + r (PCRE2_EXTRA_CASELESS_RESTRICT) + + + u (PCRE_UTF8) と i (PCRE_CASELESS) が + 有効なとき、この修飾子を使うと ASCII 文字と非 ASCII 文字同士がマッチしなくなります。 + + + 例えば、preg_match('/\x{212A}/iu', "K") はケルビン記号 (U+212A) にマッチします。 + r を使うと (preg_match('/\x{212A}/iur', "K"))、マッチしなくなります。 + + + PHP 8.4.0 以降で利用可能です。 + + + diff --git a/reference/pcre/pattern.syntax.xml b/reference/pcre/pattern.syntax.xml index 457452f43e..6a884e48bb 100644 --- a/reference/pcre/pattern.syntax.xml +++ b/reference/pcre/pattern.syntax.xml @@ -1,7 +1,7 @@ - + パターン構文 @@ -1621,11 +1621,23 @@ \d{8} - は、ぴったり 8 桁の数字にのみマッチします。開き波カッコは、 + は、ぴったり 8 桁の数字にのみマッチします。 + + + + PHP 8.4.0 より前のバージョンでは、開き波カッコは、 量指定子を置けない場所、つまり量指定子の構文に適合しない場所に 記述された場合、文字リテラルとして解釈されます。例えば、 - {,6} は量指定子ではなく、4つの文字からなる文字リテラルとなります。 - + {,6} は量指定子ではなく、4つの文字からなる文字列リテラルとなります。 + + PHP 8.4.0 以降では、PCRE 拡張モジュールに PCRE2 ライブラリのバージョン 10.44 がバンドルされています。 + このバージョンでは \d{,8} のようなパターンが書けるようになり、 + \d{0,8} と同じ意味になります。 + + 更に、PHP 8.4.0 以降では、 + \d{0 , 8}\d{ 0 , 8 } のように + 量指定子の開き波カッコの周りに空白文字を入れることができます。 + {0} という量指定子の指定も可能です。 直前の項目および量指定子が存在しないという指定になります。