Skip to content

Commit

Permalink
[PHP 8.4] PCRE - PCRE2-v10.44 updates を取り込み (#248)
Browse files Browse the repository at this point in the history
  • Loading branch information
nsfisis authored Jan 13, 2025
1 parent 26cafd6 commit aa3d67a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 5 deletions.
18 changes: 17 additions & 1 deletion reference/pcre/pattern.modifiers.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 288ea761f5a8e7c685fe7f6fce2d7de0a87b31bd Maintainer: takagi Status: ready -->
<!-- EN-Revision: c43393d1b64a41be1b8c45f997062b0f645bc91e Maintainer: takagi Status: ready -->
<!-- Credits: hirokawa,haruki,mumumu -->
<article xml:id="reference.pcre.pattern.modifiers" xmlns="http://docbook.org/ns/docbook">
<title>パターン修飾子</title>
Expand Down Expand Up @@ -181,6 +181,22 @@
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis>r</emphasis> (<literal>PCRE2_EXTRA_CASELESS_RESTRICT</literal>)</term>
<listitem>
<simpara>
<emphasis>u</emphasis> (<literal>PCRE_UTF8</literal>) と <emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>) が
有効なとき、この修飾子を使うと ASCII 文字と非 ASCII 文字同士がマッチしなくなります。
</simpara>
<simpara>
例えば、<code>preg_match('/\x{212A}/iu', "K")</code> はケルビン記号 <literal>K</literal> (U+212A) にマッチします。
<emphasis>r</emphasis> を使うと (<code>preg_match('/\x{212A}/iur', "K")</code>)、マッチしなくなります。
</simpara>
<simpara>
PHP 8.4.0 以降で利用可能です。
</simpara>
</listitem>
</varlistentry>
</variablelist>
</blockquote>
</para>
Expand Down
20 changes: 16 additions & 4 deletions reference/pcre/pattern.syntax.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- splitted from ./ja/functions/pcre.xml, last change in rev 1.1 -->
<!-- EN-Revision: 77fe733a1ba9c961424adcb7c9af00c1f5443a77 Maintainer: takagi Status: ready -->
<!-- EN-Revision: c43393d1b64a41be1b8c45f997062b0f645bc91e Maintainer: takagi Status: ready -->
<!-- Credits: haruki,hirokawa,mumumu -->
<chapter xml:id="reference.pcre.pattern.syntax" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>パターン構文</title>
Expand Down Expand Up @@ -1621,11 +1621,23 @@
\d{8}
</literallayout>

は、ぴったり 8 桁の数字にのみマッチします。開き波カッコは、
は、ぴったり 8 桁の数字にのみマッチします。

</para>
<simpara>
PHP 8.4.0 より前のバージョンでは、開き波カッコは、
量指定子を置けない場所、つまり量指定子の構文に適合しない場所に
記述された場合、文字リテラルとして解釈されます。例えば、
{,6} は量指定子ではなく、4つの文字からなる文字リテラルとなります。
</para>
<literal>{,6}</literal> は量指定子ではなく、4つの文字からなる文字列リテラルとなります。

PHP 8.4.0 以降では、PCRE 拡張モジュールに PCRE2 ライブラリのバージョン 10.44 がバンドルされています。
このバージョンでは <literal>\d{,8}</literal> のようなパターンが書けるようになり、
<literal>\d{0,8}</literal> と同じ意味になります。

更に、PHP 8.4.0 以降では、
<literal>\d{0 , 8}</literal> や <literal>\d{ 0 , 8 }</literal> のように
量指定子の開き波カッコの周りに空白文字を入れることができます。
</simpara>
<para>
{0} という量指定子の指定も可能です。
直前の項目および量指定子が存在しないという指定になります。
Expand Down

0 comments on commit aa3d67a

Please sign in to comment.