cvs: phpdoc-ja /reference/pcre pattern.modifiers.xml pattern.syntax.xml reference.xml /reference/pcre/functions pcre.pattern.modifiers.xml
pcre.pattern.syntax.xml
| From: | Rui Hirokawa | Date: | Sun, 28 Mar 2004 06:28:03 +0000 |
| Subject: | cvs: phpdoc-ja /reference/pcre pattern.modifiers.xml pattern.syntax.xml reference.xml /reference/pcre/functions pcre.pattern.modifiers.xml pcre.pattern.syntax.xml |
||
| Groups: | php.doc.ja | ||
| Request: | Send a blank email to doc-ja+get-694@lists.php.net to get a copy of this message | ||
hirokawa Sun Mar 28 01:28:03 2004 EDT
Added files:
/phpdoc-ja/reference/pcre pattern.modifiers.xml pattern.syntax.xml
Removed files:
/phpdoc-ja/reference/pcre/functions pcre.pattern.modifiers.xml
pcre.pattern.syntax.xml
Modified files:
/phpdoc-ja/reference/pcre reference.xml
Log:
sync with en.
http://cvs.php.net/diff.php/phpdoc-ja/reference/pcre/reference.xml?r1=1.3&r2=1.4&ty=u Index: phpdoc-ja/reference/pcre/reference.xml diff -u phpdoc-ja/reference/pcre/reference.xml:1.3 phpdoc-ja/reference/pcre/reference.xml:1.4 --- phpdoc-ja/reference/pcre/reference.xml:1.3 Sat Dec 14 00:51:49 2002 +++ phpdoc-ja/reference/pcre/reference.xml Sun Mar 28 01:28:03 2004 @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Revision: 1.3 $ --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.11 Maintainer: hirokawa Status: ready --> <reference id="ref.pcre"> <title>Perläºæã®æ£è¦è¡¨ç¾é¢æ°</title> <titleabbrev>PCRE</titleabbrev> @@ -15,6 +16,8 @@ ããå ´åã¯ãããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããå¿ è¦ãããã¾ããPHP 4.0.4以éããã¿ã¼ã³æå®ç¨ã« Perlå½¢å¼ã® (), {}, [], <> ã 使ç¨å¯è½ã§ãã + 詳細ã«ã¤ãã¦ã¯ <link linkend="pcre.pattern.syntax">ãã¿ã¼ã³æ§æ</link> + ãåç §ãã¦ä¸ããã </para> <para> ãããã³ã°ã«å½±é¿ãä¸ããæ§ã ãªä¿®é£¾åãçµç«¯ããªãã¿ã®å¾ã«ä»ãã @@ -26,6 +29,13 @@ PHPã¯ã<link linkend="ref.regex">POSIXæ¡å¼µæ£è¦è¡¨ç¾é¢æ°</link>ãç¨ ãã¦POSIXæ¡å¼µæ§æãç¨ããæ£è¦è¡¨ç¾ããµãã¼ããã¦ãã¾ãã </para> + <warning> + <para> + PCREã®ããã¤ãã®å¶éã«ã¤ãã¦ãç¥ã£ã¦ããå¿ è¦ãããã¾ãã + 詳細ã¯ã<ulink + url="&url.pcre.man;">&url.pcre.man;</ulink> ãèªãã§ä¸ããã + </para> + </warning> </section> <section id="pcre.requirements"> @@ -88,9 +98,10 @@ </example> </para> </section> - </partintro> +&reference.pcre.pattern.modifiers; +&reference.pcre.pattern.syntax; &reference.pcre.functions; </reference> http://cvs.php.net/co.php/phpdoc-ja/reference/pcre/pattern.modifiers.xml?r=1.1&p=1 Index: phpdoc-ja/reference/pcre/pattern.modifiers.xml +++ phpdoc-ja/reference/pcre/pattern.modifiers.xml <?xml version="1.0" encoding="utf-8"?> <!-- splitted from ./ja/functions/pcre.xml, last change in rev 1.1 --> <!-- sync: 1.2 --> <refentry id="pcre.pattern.modifiers"> <refnamediv> <refname>ãã¿ã¼ã³ä¿®æ£å</refname> <refpurpose>æ£è¦è¡¨ç¾ãã¿ã¼ã³ã§ä½¿ç¨å¯è½ãªä¿®é£¾åãå¾ã</refpurpose> </refnamediv> <refsect1> <title>説æ</title> <para> ç¾å¨ä½¿ç¨å¯è½ãªPCRE修飾åã®ä¸è¦§ã以ä¸ã«ç¤ºãã¾ãã æ¬å¼§ã®ä¸ã®ååã¯ããããã®ä¿®é£¾åã«é¢ããPCREå é¨ã®ååã§ãã </para> <para> <blockquote> <variablelist> <varlistentry> <term><emphasis>i</emphasis> (PCRE_CASELESS)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ããã¦ããå ´åããã¿ã¼ã³ã®ä¸ã®æå㯠大æåã«ãå°æåã«ãããããã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>m</emphasis> (PCRE_MULTILINE)</term> <listitem> <simpara> ããã©ã«ãã§ãPCREã¯æ¤ç´¢å¯¾è±¡æååã(å®éã«ã¯è¤æ°è¡ãããªã å ´åã§ã)åä¸ã®è¡ãããªãã¨ãã¦å¦çãã¾ãã "è¡é "ã¡ã¿æå (^) ã¯æååã®æåã«ããããããã¾ããã 䏿¹ã"è¡ã®çµç«¯"ã¡ã¿æå ($) ã¯æååã®çµããã¾ã㯠(<emphasis>D</emphasis> 修飾åãè¨å®ããã¦ããªãå ´åã) çµç«¯ãè¡¨ãæ¹è¡è¨å·ã®åã®ã¿ã«ããããããã¾ããã ãã®åä½ã¯ Perl ã¨åãã§ãã </simpara> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åã"è¡é "ããã³"è¡æ«"㯠subjectæååã«ããã¦ãæååã®æåã¨æå¾ã¨åãã«ã åæ¹è¡ã®ç´åã¨ç´å¾ã«ããããããããã¾ãã ãã®åä½ã¯ãPerl ã® /m 修飾åã¨åãã§ãã subject æååã®ä¸ã« "\n" æåããªãå ´åã ã¾ãã¯ãã¿ã¼ã³ã« ^ ã¾ã㯠$ ããªãå ´åã ãã®ä¿®é£¾åãè¨å®ãã¦ãæå³ã¯ããã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>s</emphasis> (PCRE_DOTALL)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åããã¿ã¼ã³ä¸ã®ãããã¡ã¿æå㯠æ¹è¡ãå«ãå ¨ã¦ã®æåã«ããããã¾ãã ãããæå®ããªãå ´åãæ¹è¡ã¯é¤ããã¾ãã ãã®ä¿®é£¾åã¯ãPerl ã® /s 修飾åã¨ç価ã§ãã [^a] ã®ãããªå¦å®ã¯ã©ã¹ã¯ã ãã®ä¿®é£¾åã®è¨å®ã«ããããå¸¸ã«æ¹è¡æåã«ããããã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>x</emphasis> (PCRE_EXTENDED)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åãã¨ã¹ã±ã¼ãããã æåã¯ã©ã¹ã®å é¨ã«ããå ´åãé¤ãã ãã¿ã¼ã³ã®ç©ºç½æåã¯å®å ¨ã«ç¡è¦ããã¾ãã ã¨ã¹ã±ã¼ãããã¦ããªãæåã¯ã©ã¹ã®å¤ã«ãã # ã¨æ¬¡ã®æ¹è¡æåã®é ã®æåãç¡è¦ããã¾ãã ãã®åä½ã¯ãPerl ã® /x 修飾åã¨åãã§ãããè¤éãªãã¿ã¼ã³ã®å é¨ã« ã³ã¡ã³ããå«ããã¨ãå¯è½ã¨ãªãã¾ãã ãããããã®ä¿®é£¾åã¯ããã¼ã¿æåã«ã®ã¿é©ç¨ããããã¨ã«æ³¨æ ãã¦ä¸ãããç©ºç½æåããã¿ã¼ã³ã®ç¹æ®æåã®ä¸¦ã³ã®ä¸ã ä¾ãã°æ¡ä»¶ä»ãµããã¿ã¼ã³(?) ã®å é¨ã«ç½®ããã¨ã¯ã§ãã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>e</emphasis></term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ããã¦ããå ´åã<function>preg_replace</function> ã¯ãç½®ææååã«ããã¦å¾æ¹åç §ã«é¢ããé常ã®ç½®æãè¡ã£ãå¾ã PHP ã³ã¼ãã¨ãã¦è©ä¾¡ããæ¤ç´¢æååãç½®æããããã«ãã®çµæã 使ç¨ãã¾ãã </simpara> <simpara> ãã®ä¿®é£¾åã使ç¨ããã®ã¯ã<function>preg_replace</function>ã®ã¿ã§ãã ä»ã® PCRE 颿°ã§ã¯ç¡è¦ããã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>A</emphasis> (PCRE_ANCHORED)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åããã¿ã¼ã³ã¯å¼·å¶çã«"anchored"ã¨ãªãã¾ãã ãã®å ´åãæ¤ç´¢ãããæåå("æ¤ç´¢å¯¾è±¡æåå")ã®å é ã« ã®ã¿ãããããããã«å¶éããã¾ãã ãã¿ã¼ã³èªä½ã®ä¸ã«é©å½ãªæå®ãè¡ããã¨ã§ã åæ§ã®å¹æãå¾ããã¨ãå¯è½ã§ãPerlã§ã¯ãã®æ¹æ³ããä½¿ç¨ ã§ãã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>D</emphasis> (PCRE_DOLLAR_ENDONLY)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ããã¦ããå ´åããã¿ã¼ã³å ã®ã¡ã¿è¨å·ã®ãã« ã¯ãæ¤ç´¢å¯¾è±¡æååã®çµããã«ã®ã¿ããããã¾ãã ãã®ä¿®é£¾åãæå®ããªãå ´åããã«è¨å·ã¯æ¹è¡æåã®ç´åã® æå(ãã ããæ¹è¡æå以å¤)ã«ãããããã¾ãã ãã®ä¿®é£¾åã¯ã<emphasis>m</emphasis> ãè¨å®ããã¦ããå ´åã« ç¡è¦ããã¾ãã Perlã«ã¯ããã®ä¿®é£¾åã«ç価ãªãã®ã¯ããã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>S</emphasis></term> <listitem> <simpara> ãããã¿ã¼ã³ãè¤æ°å使ç¨ããå ´åããããã³ã°ã«ãããæéã é«éåãããã¨ãç®çã¨ãã¦ããã¿ã¼ã³è§£æã«ããæéãããã 価å¤ãããã¾ãã ãã®ä¿®é£¾åãè¨å®ããå ´åããã®ãããªããæéããããè§£æã è¡ããã¾ããç¾å¨ããã¿ã¼ã³è§£æã¯ã æåã®æåãåä¸ã®åºå®ããã¦ããªãã¢ã³ã«ã¼ä»ãã§ãªããã¿ã¼ã³ã§ã®ã¿ æç¨ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>U</emphasis> (PCRE_UNGREEDY)</term> <listitem> <simpara> ãã®ä¿®é£¾åã¯ãããã©ã«ãã§è²ªæ¬²ã§ãªããã"?" ãå¾ã«ä»ãã¨è²ªæ¬² ã«ãªãéååå¨ã®åä½ãå転ãã¾ãããã®ä¿®é£¾åã¯Perläºæã§ã¯æ ãã¾ããããã®ä¿®é£¾åã®æå®ã¯ã(?U) 修飾åã®ããã«ãã¿ã¼ã³å ã§ãè¡ããã¨ãã§ãã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>X</emphasis> (PCRE_EXTRA)</term> <listitem> <simpara> ãã®ä¿®é£¾åã¯ãPerl ã¨äºææ§ããªã PCRE ã®ä»å çãªæ©è½ããªã³ã«ãã¾ãã ãã¿ã¼ã³å ã§å¾ãã«æåãç¶ãããã¯ã¹ã©ãã·ã¥ã§ç¹å¥ãªæå³ããªã ãã®ã¯ãå°æ¥çãªæ¡å¼µã®éã®äºææ§ã®ç¶æã®ãããã¨ã©ã¼ã«ãªãã¾ãã ããã©ã«ãã§ã¯ãPerl ã®ããã«æåãå¾ãã«ç¶ãããã¯ã¹ã©ãã·ã¥ ã§ç¹ã«æå³ããªããã®ã¯ããªãã©ã«ã¨ãã¦å¦çããã¾ãã ãã®ä¿®é£¾åã«ããå¶å¾¡ãããæ©è½ã¯ãç¾å¨ä»ã«ããã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>u</emphasis> (PCRE_UTF8)</term> <listitem> <simpara> ãã®ä¿®æ£åã¯ãPerléäºæãªPCREã®æ©è½ãæå¹ã«ãã¾ãããã¿ã¼ã³ æååã¯ãUTF-8ã¨ã³ã³ã¼ããããæååã¨ãã¦å¦çããã¾ããã ã®ä¿®æ£åã¯ãUNIXã§ã¯PHP 4.1.0以éãWin32ã§ã¯PHP 4.2.3以é㧠使ç¨å¯è½ã§ãã </simpara> </listitem> </varlistentry> </variablelist> </blockquote> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/co.php/phpdoc-ja/reference/pcre/pattern.syntax.xml?r=1.1&p=1 Index: phpdoc-ja/reference/pcre/pattern.syntax.xml +++ phpdoc-ja/reference/pcre/pattern.syntax.xml <?xml version="1.0" encoding="utf-8"?> <!-- splitted from ./ja/functions/pcre.xml, last change in rev 1.1 --> <!-- sync: 1.2 --> <refentry id="pcre.pattern.syntax"> <refnamediv> <refname>ãã¿ã¼ã³æ§æ</refname> <refpurpose>PCRE æ£è¦è¡¨ç¾ã®èª¬æ</refpurpose> </refnamediv> <refsect1> <title>説æ</title> <literallayout> PCRE ã©ã¤ãã©ãªã¯ã(以ä¸ã«ç¤ºã)å ããªéããé¤ã Perl 5 ã¨åãæ§æã¨ æå³ã使ç¨ããæ£è¦è¡¨ç¾ãã¿ã¼ã³ãããã³ã°ãå®è£ ãã颿°ç¾¤ã§ãã ç¾å¨ã®å®è£ ã¯ãPerl 5.005 ã«å¯¾å¿ãã¦ãã¾ãã </literallayout> </refsect1> <refsect1> <title>Perlã¨ã®å·®ç°</title> <para> ããã§èª¬æããã®ã¯ãPerl 5.005 ã«é¢é£ãããã®ã§ãã <orderedlist> <listitem> <simpara> ããã©ã«ãã§ã¯ç©ºç½æå㯠C ã©ã¤ãã©ãªé¢æ° isspace() ãèªèãã å ¨ã¦ã®æåã§ãããå¥ã®æååãã¼ãã«ãç¨ãã¦PCREãã³ã³ãã¤ã«ã ããã¨ãå¯è½ã§ããé常ãisspace() ã¯ç©ºç½ããã©ã¼ã ãã£ã¼ããæ¹ è¡ãè¤æ¹ãæ°´å¹³ã¿ããåç´ã¿ãã«ããããã¾ããPerl 5 ã§ã¯ããç©ºç½ æåã®ä¸ã«åç´ã¿ããå«ãã§ãã¾ãããããªãåãã Perl ããã¥ã¡ ã³ãã«ãã£ã \v ã¨ã¹ã±ã¼ãã¯ãå®éã¯èªèããã¦ãã¾ããã§ããã ãããããã®æåèªä½ã¯å°ãªãã¨ã 5.002 ã¾ã§ã¯ç©ºç½æåã¨ãã¦å¦ç ããã¦ãã¾ãã5.004 ããã³ 5.005 ã§ã¯ããã®æå㯠\s ã«ãããã ã¾ããã </simpara> </listitem> <listitem> <simpara> PCREã§ã¯ãå èªã¿è¨æ(assertion)æã«ç¹°ãè¿ãæ°ã®æå®ã使ç¨ã§ãã¾ ãããPerlã¯ããã許å¯ãã¾ãããæå³ããéãã«åä½ãããã¨ãæ å³ããããã§ã¯ããã¾ãããä¾ãã°ã(?!a){3} ã¯ã次ã®3æåã "a" ã§ãªããã¨ãè¨æããããã§ã¯ããã¾ããããã®æå®ã¯ãæ¬¡ã®æåã "a" ã§ã¯ãªããã¨ã3åè¨æããã ãã§ãã </simpara> </listitem> <listitem> <simpara> å¦å®ã®å èªã¿è¨æã®ä¸ã§çãããµããã¿ã¼ã³ãåå¾ããåæ°ã¯è¨ç®ã ãã¾ããããªãã»ãããã¯ãã«ã®ä¸ã®å¯¾å¿ããã¨ã³ããªã¯è¨å®ããã¾ ãããPerlã§ã¯ãè¨æã®ãããã³ã°ã«å¤±æããåã«ããããããã¿ã¼ ã³ãããã®å¤æ°ãè¨å®ãã¾ããããããè¡ãããã®ã¯ãå¦å®ã®å èªã¿ è¨æã®æã1ã¤ã ãã®å ´åã®ã¿ã§ãã </simpara> </listitem> <listitem> <simpara> ãã«æåæåã¯ãæ¤ç´¢å¯¾è±¡æååã§ãµãã¼ãããã¾ããããã¿ã¼ã³æ ååã§ã¯ãµãã¼ãããã¾ãããããã¯ããã¿ã¼ã³æååã¯ã0ãçµç«¯ã¨ ããé常ã®Cæååã¨ãã¦æ¸¡ãããããã§ããã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ "\0"ã¯ããã«æåã表ããã¿ã¼ã³ã¨ãã¦ä½¿ç¨ãããã¨ãå¯è½ã§ãã </simpara> </listitem> <listitem> <simpara> 次ã®Perlã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã¯ããµãã¼ãããã¾ããã: \l, \u, \L, \U, \E, \Q å®éãPerlã§ã¯ããããã¯ãã¿ã¼ã³ãããã³ã°ã¨ã³ ã¸ã³ã®é¨åã§ã¯ãªããéå¸¸ã®æååå¦çã®é¨åã«å®è¨¼ããã¦ãã¾ãã </simpara> </listitem> <listitem> <simpara> Perlã®\Gè¨æã¯ãä¸åã®ãã¿ã¼ã³ãããã«é¢ãããã®ã§ã¯ãªãããã ãµãã¼ãããã¾ããã </simpara> </listitem> <listitem> <simpara> æç¢ºã«è¿°ã¹ãã¨ãPCREã¯(?{code})æ§é ããµãã¼ããã¾ããã </simpara> </listitem> <listitem> <simpara> Perl 5.005_02ã§ã¯ãæ¸ããã¿æã«ãã¿ã¼ã³ã®ä¸é¨ãç¹°ãè¿ãéã«åå¾ ããæååã®è¨å®ã«é¢é£ããå¥å¦ãªåä½ãè¦ããããã¾ããä¾ãã°ã "aba"ããã¿ã¼ã³/^(a(b)?)+$/ã«ãããã³ã°ããå ´åã$2ã«ã¯ãå¤"b" ãè¨å®ããã¾ããã"aabbaa"ã/^(aa(bb)?)+$/ã«ããããããå ´åã $2ã¯è¨å®ããã¾ããããããããã¿ã¼ã³ã/^(aa(b(b))?)+$/ã«å¤ãã ã¨ã$2 (ããã³ $3)ãè¨å®ããã¾ããPerl 5.004ã§ã¯ã$2 ã¯ã©ã¡ãã® ã±ã¼ã¹ã§ãè¨å®ããã¾ãPCREã§ã&true;ã«è¨å®ããã¾ããå°æ¥çã« Perlãå¥ã®çç¾ã®ãªãç¶æ ã«å¤æ´ãããå ´åãPCREã追å¾ããå¯è½æ§ ãããã¾ãã </simpara> </listitem> <listitem> <simpara> ä»ã®æªè§£æ±ºã®çç¾ã¯ãPerl 5.005_02 ã§ã¯ããã¿ã¼ã³ /^(a)?(?(1)a|b)+$/ ã¯æåå "a" ã«ããããã¾ãããPCRE ã§ã¯ãã ãããªãã¨ãããã¨ã§ããããããPerl 㨠PCRE ã¯å ±ã« /^(a)?a/ ã§ "a" ããããããå ´åã« $1 ãæªå®ç¾©ã®ã¾ã¾ã¨ãªãã¾ãã </simpara> </listitem> <listitem> <para> PCREã¯ãPerlæ£è¦è¡¨ç¾ã®æ©è½ã«ããã¤ãã®æ¡å¼µæ©è½ãæä¾ãã¾ãã <orderedlist> <listitem> <simpara> å èªã¿è¨æã¯ãåºå®é·ã®æååã«ãããããå¿ è¦ãããã¾ãããå èªã¿è¨æã®å¥ã®åæã¯ãç°ãªã£ãé·ãã®æååã«ããããããã¨ã ã§ãã¾ããPerl 5.005 ã§ã¯å ¨ã¦åãé·ãã§ããå¿ è¦ãããã¾ãã </simpara> </listitem> <listitem> <simpara> <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link>ã è¨å®ããã¦ããã<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãè¨å® ããã¦ããªãå ´åãã¡ã¿æå$ã¯ãæååã®çµç«¯ã«ã®ã¿ããããã¾ãã </simpara> </listitem> <listitem> <simpara> <link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link>ãè¨ å®ããã¦ããå ´åãããã¯ã¹ã©ãã·ã¥ã®å¾ã«æåããã£ã¦ç¹ã«æå³ ããªããã®ã¯ãã¨ã©ã¼ã¨ãªãã¾ãã </simpara> </listitem> <listitem> <simpara> <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link>ã è¨å®ããã¦ããå ´åãããã©ã«ãã§ã¯è²ªæ¬²ã§ãªãç¹°ãè¿ãæå®å㮠貪欲ãã¯å転ãã¾ãããçå符ãå¾ãã«ã¤ãå ´åã¯ã貪欲ã«ãªãã¾ãã </simpara> </listitem> </orderedlist> </para> </listitem> </orderedlist> </para> </refsect1> <refsect1 id="regexp.reference"> <title>æ£è¦è¡¨ç¾ã®è©³ç´°</title> <refsect2 id="regexp.introduction"> <title>å°å ¥</title> <para> PCREã«ãããµãã¼ããããæ£è¦è¡¨ç¾ã®æ§æã以ä¸ã«ç¤ºãã¾ãã æ£è¦è¡¨ç¾ã¯ãPerlã®ããã¥ã¡ã³ããä»ã®å¤ãã®æ¸ç±ã«ãã㦠è±å¯ãªä¾ã¨å ±ã«èª¬æããã¦ãã¾ãã Jeffrey Friedl ãæ¸ãã O'Reilly çºåã® "Mastering Regular Expressions" ã«ã¯ã詳細ã示ããã¦ãã¾ãã ããã§ã®èª¬æã¯ãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ãã¨ãã¦ä½¿ç¨ãããã¨ã æå³ãã¦ãã¾ãã æ£è¦è¡¨ç¾ã¯ãã¿ã¼ã³ã§ãããæ¤ç´¢å¯¾è±¡æååã«å¯¾ãã¦å·¦ããå³ã«ãããã³ã°ã è¡ããã¾ãã ãã¿ã¼ã³ã®ä¸ã®å¤ãã®æåã¯ããèªä½ã表ããæ¤ç´¢å¯¾è±¡ã®å¯¾å¿ããæåã« ããããã¾ããç°¡åãªä¾ããããã¨ããã¿ã¼ã³ <literal>The quick brown fox</literal> ã¯ãæ¤ç´¢å¯¾è±¡æååã®ããèªä½ã¨åãé¨åã«ããããã¾ãã </para> </refsect2> <refsect2 id="regexp.reference.meta"> <title>ã¡ã¿æå</title> <para> æ£è¦è¡¨ç¾ã®å¼·åãã¯ããã¿ã¼ã³ä¸ã«è¤æ°ã®é¸æè¢ãç¹°ãè¿ããå«ãè½å ã«ãããã®ã§ãããããã¯ã<emphasis>ã¡ã¿</emphasis>-<emphasis>æ å</emphasis>ã使ç¨ãããã¿ã¼ã³ã«ããã¨ã³ã³ã¼ãããã¾ãã ã¡ã¿æåã¯ããèªä½ã表ãã¾ãããã代ããã«ç¹æã®è§£éãè¡ããã¾ãã </para> <para> 2種é¡ã®ã¡ã¿æåãåå¨ãã¾ããçæ¹ã¯ããã©ã±ããã®ä¸ä»¥å¤ã«ãããã¿ã¼ã³ ã§ä½¿ç¨å¯è½ãªãã®ã§ãããçæ¹ã¯ããã©ã±ããã®ä¸ã§ä½¿ç¨å¯è½ãªãã®ã§ãã ãã©ã±ããã®å¤ã§ä½¿ç¨ãããã¡ã¿æåã«ã¯æ¬¡ã®ãããªãã®ãããã¾ãã <variablelist> <varlistentry> <term><emphasis>\</emphasis></term> <listitem> <simpara> ä¸è¬çãªã¨ã¹ã±ã¼ãæå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>^</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡(è¤æ°è¡ã¢ã¼ãã§ã¯è¡)ã®å§ã¾ããè¨æ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>$</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡(è¤æ°è¡ã¢ã¼ãã§ã¯è¡)ã®çµãããè¨æ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>.</emphasis></term> <listitem> <simpara> (ããã©ã«ãã§ã¯)æ¹è¡ãé¤ãå ¨ã¦ã®æåã«ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>[</emphasis></term> <listitem> <simpara> æåã¯ã©ã¹éå§ãå®ç¾© </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>]</emphasis></term> <listitem> <simpara> æåã¯ã©ã¹ã®çµäº </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>|</emphasis></term> <listitem> <simpara> 鏿æã®éå§ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>(</emphasis></term> <listitem> <simpara> ãµããã¿ã¼ã³ã®éå§ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>)</emphasis></term> <listitem> <simpara> ãµããã¿ã¼ã³ã®çµäº </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>?</emphasis></term> <listitem> <simpara> ( ã®æå³ãæ¡å¼µããã¾ãã¯ã0 ã¾ãã¯1 åã®ç¹°ãè¿ãã¾ãã¯ãç¹°ã è¿ããæå°åãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>*</emphasis></term> <listitem> <simpara> 0以ä¸ã®ç¹°ãè¿ã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>+</emphasis></term> <listitem> <simpara> 1以ä¸ã®ç¹°ãè¿ã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>{</emphasis></term> <listitem> <simpara> æå°/æå¤§ç¹°ãè¿ãã®éå§ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>}</emphasis></term> <listitem> <simpara> æå°/æå¤§ç¹°ãè¿ãã®çµäº </simpara> </listitem> </varlistentry> </variablelist> ãã¿ã¼ã³ä¸ã§ãã©ã±ããã®ä¸ã®é¨åã¯ã"æåã¯ã©ã¹" ã¨å¼ã°ãã¾ãã æåã¯ã©ã¹ã§ä½¿ããã¡ã¿æåã¯æ¬¡ã®ãã®ã ãã§ãã <variablelist> <varlistentry> <term><emphasis>\</emphasis></term> <listitem> <simpara> ä¸è¬çãªã¨ã¹ã±ã¼ãæå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>^</emphasis></term> <listitem> <simpara> æåã®æåã«ç¨ããå ´åã®ã¿ãã¯ã©ã¹ãå¦å® </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>-</emphasis></term> <listitem> <simpara> æåã®ç¯å²ã示ã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>]</emphasis></term> <listitem> <simpara> æåã¯ã©ã¹ãçµäºãã </simpara> </listitem> </varlistentry> </variablelist> 次ã®ã»ã¯ã·ã§ã³ã§ãåã¡ã¿æåã®ä½¿ç¨æ³ã®èª¬æãè¡ãã¾ãã </para> </refsect2> <refsect2 id="regexp.reference.backslash"> <title>ããã¯ã¹ã©ãã·ã¥</title> <para> ããã¯ã¹ã©ãã·ã¥ã«ã¯ãããã¤ãã®ä½¿ç¨æ³ãããã¾ããã¾ãã è±åã§ãªãæåãå¾ã«ç¶ãå ´åããã¦?åãæãã ç¹å¥ãªæå³ã¯å¤±ããã¾ãããã®ããã¯ã¹ã©ãã·ã¥ã®ä½¿ãæ¹ã¯ã æåã¯ã©ã¹ã®å å´ã¨å¤å´ã®ä¸¡æ¹ã§ä½¿ç¨å¯è½ã§ãã </para> <para> ä¾ãã°ã"*" æåã«ãããããããå ´åããã¿ã¼ã³ã« "\*" ãæ¸ãã¾ãã ããã«ãããæ¬¡ã®æåãã¡ã¿æåã¨ãã¦è§£éããããã¨ããã¾ãã¨ã "\" ãä¼´ã£ãè±åã§ãªãæåãããã®æåèªä½ã表ããã¨ãä¿è¨¼ãã¾ãã ç¹ã«ãããã¯ã¹ã©ãã·ã¥ã«ãããããããå ´åã¯ã"\\" ã¨æ¸ãã¾ãã </para> <para> ãã¿ã¼ã³ãã PCRE_EXTENDED ãªãã·ã§ã³ãä»ãã¦ã³ã³ãã¤ã«ããã¦ãã å ´åã(æåã¯ã©ã¹ã®ä¸ã§ãªã)ãã¿ã¼ã³å ã®ç©ºç½æåããã³ "#" ã¨æ¬¡ã®æ¹è¡æåã®éã®æåã¯ç¡è¦ããã¾ãã ç©ºç½æåã¾ã㯠"#" ããã¿ã¼ã³ã®ä¸é¨ã¨ãã¦å«ããéã«ã¯ã ããã¯ã¹ã©ãã·ã¥ã«ããã¨ã¹ã±ã¼ããããã¨ãã§ãã¾ãã </para> <para> ããã¯ã¹ã©ãã·ã¥ã®2çªç®ã®ä½¿ç¨æ³ã¯ãåºåãããªãæåã ãã¿ã¼ã³å ã«ç®ã«è¦ããå½¢ã§ã¨ã³ã³ã¼ãããææ³ãæä¾ãããã®ã§ãã ãã¿ã¼ã³ãçµäºããããã«æåãé¤ããåºåãããªãæåã®è¦ãæ¹ã« ã¯ä½ã®å¶ç´ãããã¾ãããããã¿ã¼ã³ãããã¹ãç·¨éããéã«ã¯ãé常 次ã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãç¨ããæ¹ããå ã®ãã¤ããªæåããã ããç°¡åã§ãããã </para> <para> <variablelist> <varlistentry> <term><emphasis>\a</emphasis></term> <listitem> <simpara> ã¢ã©ã¼ã ããã«æå (16é² 07) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\cx</emphasis></term> <listitem> <simpara> "control-x", ãã ã x ã¯ããããæå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\e</emphasis></term> <listitem> <simpara> ã¨ã¹ã±ã¼ã (16é² 1B) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\f</emphasis></term> <listitem> <simpara> æ¹ãã¼ã¸ (16é² 0C) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\n</emphasis></term> <listitem> <simpara> æ¹è¡ (16é² 0A) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\r</emphasis></term> <listitem> <simpara> 復帰 (16é² 0D) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\t</emphasis></term> <listitem> <simpara> ã¿ã (16é² 09) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\xhh</emphasis></term> <listitem> <simpara> 16鲿°ã§ hh ã®æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\ddd</emphasis></term> <listitem> <simpara> 8鲿°ã§ ddd ã®æåã¾ãã¯å¾æ¹åç § </simpara> </listitem> </varlistentry> </variablelist> </para> <para> "\cx" ã®æ£ç¢ºãªå¹æã¯ã次ã®ããã«ãªãã¾ãã"x" ãå°æåã®å ´åã 大æåã«å¤æããã¾ããç¶ãã¦ãæåã®6ãããç®(16鲿° 40)ã å転ããã¾ããã¤ã¾ãã"\cz" ã¯16鲿°ã® 1A ã«ãªãã¾ããã"\c{" ã¯16鲿°ã® 3B ã«ãªãã"\c;" 㯠16鲿°ã® 7B ã«ãªãã¾ãã </para> <para> "\x" ã®å¾ã§ã¯ã2æ¡ã®16鲿°ãèªã¾ãã¾ãã(表ãæåã¯ã大æåã§ã å°æåã§ãå¯ã§ã)"\0"ã§ã¯2æ¡ã¾ã§ã®8鲿°ãèªã¿ãã¾ãã¾ãã 両æ¹ã®ã±ã¼ã¹ã¨ãã2æ¡ããå°ãªãå ´åã表ãã¦ããæåèªä½ã 使ç¨ããã¾ããã¤ã¾ãã"\0\x\07" ã¯2ã¤ã®ãã«æåã®å¾ã«ãã«æå ãç¶ãããã®ã表ãã¾ãã8鲿°ã表ãæåã«ã¤ãã¦ã¯ãæåã®ã¼ã ã®å¾ã«2æ¡ã®æ°åãæå®ããããã«æ³¨æãã¦ä¸ããã </para> <para> ããã¯ã¹ã©ãã·ã¥ã®å¾ã«0以å¤ã®æ°åãç¶ãå ´åã®å¦çã¯ãè¤éã§ãã æåã¯ã©ã¹ã®å¤ã§ã¯ãPCRE ã¯ç¶ãæ¡ã10鲿°ã¨ãã¦èªã¿ãã¿ã¾ãã æ°åã10ãããå°ããå ´åãã¾ãã¯ãå¼ã®ä¸ã«å¤ãåå¾ããå·¦æ¬å¼§ã ãã®æ°ä»¥ä¸ãã£ãå ´åãå ¨ä½ã®ã·ã¼ã±ã³ã¹ã¯ã<emphasis>徿¹</emphasis> <emphasis>åç §</emphasis>ã¨ãã¦è§£éããã¾ãããã®åä½ã«é¢ãã説æ ã¯ãæ¬å¼§ä»ãã®ãµããã¿ã¼ã³ã®èª¬æã®å¾ã«è¡ãã¾ãã </para> <para> æåã¯ã©ã¹ã®ä¸ã¾ãã¯10鲿°ã9ãã大ãããåå¾ãè¡ã£ããµããã¿ã¼ã³ ããã®æ°ã«æºããªãå ´åãPCRE ã¯ããã¯ã¹ã©ãã·ã¥ã®å¾ããæå¤§3æåã®8鲿° ãå度èªã¿ãã¿ããã®å¤ã®æä¸ä½ 8ããããã1ãã¤ããçæãã¾ãã ç¶ãæ¡ã¯ããèªä½ã表ãã¾ããä¾ãã°ã </para> <para> <variablelist> <varlistentry> <term><emphasis>\040</emphasis></term> <listitem> <simpara> ã¯ç©ºç½ã®å¥ã®è¡¨è¨æ³ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\40</emphasis></term> <listitem> <simpara> ã¯ãåãæå³ã§ãããã ããå¤ãå徿¸ã¿ã®ãµããã¿ã¼ã³ã40åæª æºã®å ´åã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\7</emphasis></term> <listitem> <simpara> ã¯å¸¸ã«å¾æ¹åç §ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\11</emphasis></term> <listitem> <simpara> ã¯å¾æ¹åç §ã¾ãã¯ã¿ãã®å¥ã®è¡¨è¨æ³ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\011</emphasis></term> <listitem> <simpara> ã¯å¸¸ã«ã¿ãã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\0113</emphasis></term> <listitem> <simpara> ã¯ã¿ãã®å¾ã«æå "3" ãç¶ãããã®ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\113</emphasis></term> <listitem> <simpara> (99 ãè¶ ãã徿¹åç §ã¯ãªãã®ã§) 8鲿° 113 ã表ãæåã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\377</emphasis></term> <listitem> <simpara> ã¯1ãããã®ä¸¦ã³ã§æ§æããã1ãã¤ãã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\81</emphasis></term> <listitem> <simpara> ã¯å¾æ¹åç §ã¾ãã¯ããã«æåã®å¾ã«2ã¤ã®æå "8" ããã³ "1" ã ç¶ãããã®ã§ãã </simpara> </listitem> </varlistentry> </variablelist> </para> <para> 3æ¡ãè¶ ãã¦8鲿°ã¯èªã¿ãã¾ããªããããå¤ã100以ä¸ã®8鲿°ã«ã¯ ã¼ããåã«ã¤ããã¹ãã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã </para> <para> 1ãã¤ãã®å¤ãå®ç¾©ããããããã·ã¼ã±ã³ã¹ã¯ãæåã¯ã©ã¹ã®å é¨ ããã³å¤é¨ã§ä½¿ç¨å¯è½ã§ããå ãã¦ãæåã¯ã©ã¹ã®å é¨ã§ã¯ã·ã¼ã±ã³ã¹ "\b" ã¯ããã¯ã¹ãã¼ã¹(16é² 0x)ã¨ãã¦è§£éããã¾ãã æåã¯ã©ã¹ã®å¤ã§ã¯ãå¥ã®æå³ãæãã¾ãã(以ä¸ãåç §ä¸ãã) </para> <para> ããã¯ã¹ã©ãã·ã¥ã®ç¬¬3ã®ä½¿ç¨æ³ã¯ãå æ¬çãªæååãæå®ããç¨é ã§ãã </para> <para> <variablelist> <varlistentry> <term><emphasis>\d</emphasis></term> <listitem> <simpara> 10鲿°å </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\D</emphasis></term> <listitem> <simpara> 10鲿°åã§ãªãå ¨ã¦ã®æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\s</emphasis></term> <listitem> <simpara> ç©ºç½æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\S</emphasis></term> <listitem> <simpara> ç©ºç½æå以å¤ã®æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\w</emphasis></term> <listitem> <simpara> åèªæ§ææå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\W</emphasis></term> <listitem> <simpara> åèªæ§ææåä»¥å¤ </simpara> </listitem> </varlistentry> </variablelist> </para> <para> ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã®åçµã¯ãå ¨æåã®éåã2ã¤ã®éåã« åå²ãã¾ããå ¨ã¦ã®æåã¯ãåçµã®ãã¡ãçæ¹ã ?kããããã¾ãã </para> <para> åèªæ§ææåã¨ã¯è±åã¾ãã¯æ°åã¾ãã¯ã¢ã³ãã¼ã¹ã³ã¢æåã§ããã Perl ã® "åèª" ã¨æãå¾ãæåã®ãã¨ã§ãã æåããã³æ°åã®å®ç¾©ã¯ãPCRE ã®æåãã¼ãã«ã«ããå¶å¾¡ããã ãã±ã¼ã«ãæå®ããããããè¡ã£ãå ´åã«ã¯å¤ããå¯è½æ§ãããã¾ãã ("ãã±ã¼ã«ã®ãµãã¼ã"ãåç §ä¸ãã) ä¾ãã°ã"fr" (ãã©ã³ã¹èª)ãã±ã¼ã«ã®å ´åãããã¤ãã®128ãè¶ ãã æåã³ã¼ãã®æåã¯ãã¢ã¯ã»ã³ãä»ãã®æåã«ä½¿ç¨ããã¦ããã ããã㯠\w ã«ããããã¾ãã </para> <para> ãããã®æååã·ã¼ã±ã³ã¹ã¯ãæåã¯ã©ã¹ã®å å¤ã«ããã使ç¨å¯è½ ã§ãããããã¯ãé©å½ãªåã®1æåã«ããããã¾ããç¾å¨ãããã³ã° ãè¡ã£ã¦ããä½ç½®ãæ¤ç´¢å¯¾è±¡æååã®çµç«¯ã§ããå ´åããããã§ãã æåã¯ãªãã®ã§å ¨ã¦ã®ãããã³ã°ã¯å¤±æãã¾ãã </para> <para> ããã¯ã¹ã©ãã·ã¥ã®ç¬¬4ã®ä½¿ç¨æ³ã¯ãåç´ãªè¨æã§ãã è¨æã¯ãæ¤ç´¢å¯¾è±¡æååããæåãå ¨ãæãåºããã« ããããç¹å®ã®ä½ç½®ã§çããã¨ããæææ¡ä»¶ãæå®ãã¾ãã ããè¤éãªè¨æã«é¢ãããµããã¿ã¼ã³ã®ä½¿ç¨æ³ã以ä¸ã«èª¬æãã¾ãã ããã¯ã¹ã©ãã·ã¥ä»ãã®è¨æã¯æ¬¡ã®ãã®ãããã¾ãã </para> <para> <variablelist> <varlistentry> <term><emphasis>\b</emphasis></term> <listitem> <simpara> åèªã®å¢ç </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\B</emphasis></term> <listitem> <simpara> åèªã®å¢çã§ãªã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\A</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡ã®å§ã¾ã (è¤æ°è¡ã¢ã¼ãã¨ã¯ç¬ç«) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\Z</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡ã®çµããã¾ãã¯çµç«¯ã®æ¹è¡ (è¤æ°è¡ã¢ã¼ãã¨ã¯ç¬ç«) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\z</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡ã®çµãã (è¤æ°è¡ã¢ã¼ãã¨ã¯ç¬ç«) </simpara> </listitem> </varlistentry> </variablelist> </para> <para> ãããã®è¨æã¯ãæåã¯ã©ã¹ã«ã¯ä½¿ç¨ã§ãã¾ããã(ããããæåã¯ã©ã¹ã® ä¸ã§ã¯ã"<literal>\b</literal>" ã«ã¯å¥ã®æå³ãã¤ã¾ããããã¯ã¹ãã¼ ã¹æåã¨ããæå³ããããã¨ã«æ³¨æãã¦ãã ãã) </para> <para> åèªã®å¢çã¯ãæ¤ç´¢å¯¾è±¡æååã«ããã¦ãç¾å¨ã®æåããã³åã®æåã 両æ¹ã¯<literal>\w</literal>ã¾ãã¯<literal>\W</literal>ã«ãããã ãªã(ããªãã¡ãçæ¹ã¯<literal>\w</literal>ã«ããããã¦ãããçæ¹ ã¯<literal>\W</literal>ã«ããããã)ããã¾ãã¯ãæåã®ã¾ãã¯æå¾ ã®æåã<literal>\w</literal>ã«ããããããªãã°ããããããæå åã®å§ãã¾ãã¯çµããã®ä½ç½®ã§ãã </para> <para> è¨æ<literal>\A</literal>, <literal>\Z</literal>, <literal>\z</literal>ã¯ã(以ä¸ã«èª¬æãã)ã©ããªãªãã·ã§ã³ãè¨å® ãã¦ãæååã®å§ç«¯ããã³çµç«¯ã«ã®ã¿ããããããããè¨å·ããã³ãã« è¨å·ã¨ã¯ç°ãªã£ã¦ãã¾ãã ãããã®è¨æã¯ã<link linkend="pcre.pattern.modifiers">PCRE_NOTBOL</link>ã¾ãã¯<link linkend="pcre.pattern.modifiers">PCRE_NOTEOL</link>ãªãã·ã§ã³ã® å½±é¿ãåãã¾ããã<literal>\Z</literal>åã³<literal>\z</literal> ã®éãã¯ã<literal>\Z</literal>ã¯ãæååã®çµç«¯ã¨åæã«æååã® æå¾ã®æåãæ¹è¡ã®å ´åã«åã®æåã«ãããããã®ã«å¯¾ãã <literal>\z</literal>ã¯çµç«¯ã«ã®ã¿ããããã¾ãã </para> </refsect2> <refsect2 id="regexp.reference.circudollar"> <title>ãããè¨å·åã³ãã«è¨å·</title> <literallayout> æåã¯ã©ã¹ã®å¤å´ã®å ´åãããã©ã«ãã®ãããã¢ã¼ãã§ã¯ããããè¨å·ã¯ ç¾å¨ãããã³ã°ãè¡ã£ã¦ããä½ç½®ã対象æååã®å§ç«¯ã§ããå ´åã«ã®ã¿ &true;ã¨ãªãè¨æã§ãã æåã¯ã©ã¹ã®å é¨ã§ã¯ããããè¨å·ã¯å ¨ãå¥ã®æå³ã¨ãªãã¾ãã (以ä¸ãåç §) è¤æ°ã®é¸æè¢ãããå ´åã ãããè¨å·ã¯ãã¿ã¼ã³ã®æåã®æåã§ããå¿ è¦ã¯ããã¾ããã ãããããã¿ã¼ã³ããã®æã«ãããããªãå ´åã å鏿è¢ã®å é ã«ç½®ãå¿ è¦ãããã¾ãã å ¨ã¦ã®é¸æè¢ããããè¨å·ã§å§ã¾ãå ´åããã¿ã¼ã³ã¯å¯¾è±¡ã®æåã«ã®ã¿ ãããããããã«ææããã¦ã£?å ´åã§ããã"ã¢ã³ã«ã¼ä»ã" ãã¿ã¼ã³ã¨ å¼ã°ãã¾ãã (ä»ã®æåããã¿ã¼ã³ãã¢ã³ã«ã¼ä»ãã«ãããã¨ãå¯è½ã§ã) ãã«è¨å·ã¯ã(ããã©ã«ãã§ã¯)ç¾å¨ã®ãããã³ã°ç¹ã対象æååã® çµç«¯ã«ããããæååã®æå¾ã®æåãæ¹è¡æåã§ããå ´åã« ãã®ç´åã«ããå ´åã®ã¿ &true; ã¨ãªãè¨æã§ãã ãã«è¨å·ã¯ãè¤æ°ã®é¸æè¢ãããå ´åããã¿ã¼ã³ã®æå¾ã®æåã§ã ãå¿ è¦ã¯ããã¾ãããã使ç¨ã??æã®æå¾ã®ã¢ã¤ãã ã§ããå¿ è¦ ãããã¾ãããã«è¨å·ã¯ãæåã¯ã©ã¹ã®ä¸ã§ã¯ç¹å¥ãªæå³ãæãã¾ ããã ãã«è¨å·ã®æå³ã¯ãã³ã³ãã¤ã«æã¾ãã¯ãããã³ã°æã® <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> ãªãã·ã§ã³ã®è¨å®ã«ããæååã®çµç«¯ã«ã®ã¿ãããããããã«å¤æ´ãã ãã¨ãå¯è½ã§ãããã®è¨å®ã¯ã\Z è¨æã«ã¯å½±é¿ãä¸ãã¾ããã ãããè¨å·ã¨ãã«è¨å·ã®æå³ã¯ã<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãªãã·ã§ã³ ãè¨å®ããå ´åã«å¤åãã¾ãããããè¨å®ããå ´åã対象æååã®å§ç«¯ åã³çµç«¯ã«ãããããã®ã«å ãã¦ãæååå é¨ã® "\n" æåã®ç´å åã³ç´å¾ã«ããããããããã¾ããä¾ãã°ããã¿ã¼ã³ /^abc$/ ã¯ è¤æ°è¡ã¢ã¼ãã§ã¯å¯¾è±¡æåå "def\nabc" ã«ããããã¾ããã ããã§ãªãå ´åã¯ããããã¾ãããçµæã¨ãã¦ã å ¨ã¦ã®æã "^" ã§å§ã¾ããããåä¸è¡ã¢ã¼ãã§ã¢ã³ã«ã¼ä»ãã®ãã¿ ã¼ã³ã¯ãè¤æ°è¡ã¢ã¼ãã§ã¯ã¢ã³ã«ã¼ç¡ãã¨ãªãã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> ãªãã·ã§ã³ã¯ã<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãè¨å®ãã ã¦ããå ´åã¯ç¡è¦ããã¾ãã 両æ¹ã®ã¢ã¼ãã§å¯¾è±¡ã®å§ç«¯ããã³çµç«¯ã«ããããããããã« ã·ã¼ã±ã³ã¹ \A, \Z, \z ã使ç¨åºæ¥ããã¨ã«æ³¨æãã¦ãã ããã ãã¿ã¼ã³ã®æã \A ãä»ãã¦å§ã¾ãå ´åã <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ã®è¨ å®ã«ãããã常ã«ã¢ã³ã«ã¼ä»ãã¨ãªãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.dot"> <title>çµæ¢ç¬¦</title> <literallayout> æåã¯ã©ã¹ã®å¤å´ã§ã¯ããã¿ã¼ã³ã®ä¸ã®ãããã¯éåºåæåãå«ã (ããã©ã«ãã§ã¯)æ¹è¡ä»¥å¤ã®å¯¾è±¡ã®å ¨ã¦ã®1æåã«ããããã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãªãã·ã§ ã³ãè¨å®ããå ´åããããã¯æ¹è¡ã«ãããããã¾ãããããã®å¦çã¯ã ãããè¨å·ããã³ãã«è¨å·ã¨ã¯å®å ¨ã«ç¬ç«ãã¦ãã¾ããå ±éãªç¹ã¯å ±ã« æ¹è¡æåãå«ããã¨ã ãã§ãã ãããã¯ãæåã¯ã©ã¹ã®ä¸ã§ã¯ç¹å¥ãªæå³ãæã¡ã¾ããã </literallayout> </refsect2> <refsect2 id="regexp.reference.squarebrackets"> <title>è§æ¬å¼§</title> <literallayout> å·¦ãã©ã±ããã¯æåã¯ã©ã¹ã®éå§ã表ããå³ãã©ã±ããã«ããçµäº ãã¾ããå³ãã©ã±ããã¯ãããèªä½ç¹å¥ãªãã®ã§ã¯ããã¾ããã å³ãã©ã±ãããã¯ã©ã¹ã®ã¡ã³ãã¼ã¨ãã¦å¿ è¦ãªå ´åã(ãããã㪠ãã°ãæåã«ãããè¨å·ãæã£ã¦ããå¾ã§)ã¯ã©ã¹ã®æåã®æåãã¼ã¿ ãããããããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããå¿ è¦ãããã¾ãã æåã¯ã©ã¹ã¯ã対象ã®1æåã«ããããã¾ãããã®æåã¯ã¯ã©ã¹ã«ãã å®ç¾©ãããæåéåã®ä¸ã«ããå¿ è¦ãããã¾ãããã ãã ã¯ã©ã¹ã®æåã®æåããããè¨å·ã®å ´åã¯ã対象æåã¯æ®ããã«ãã å®ç¾©ãããéåã®ã課å ãã£ã¦ã¯ãªãã¾ããã ãããè¨å·ãã¯ã©ã¹ã®ã¡ã³ãã¼ã¨ãã¦å¿ è¦ãªå ´åã¯ãå¿ ããæåã® æåã¨ããªãããããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããããã«ãã¦ä¸ ããã ä¾ãã°ãæåã¯ã©ã¹ [aeiou] ã¯å°æåã®æ¯é³ã«ããããã¾ããã [^aeiou] ã¯å°æåã®æ¯é³ä»¥å¤ã®æåã«ããããã¾ãã ãããè¨å·ã¯ãåå¨ããªããã®ãåæãããã¨ã«ããã¯ã©ã¹ã«ãã æåãæå®ãã便å©ãªè¡¨è¨ã§ãã ãããè¨å·ã¯ãè¨æã§ã¯ããã¾ããã対象æååããæåãæ¶è²»ãã ç¾å¨ã®ãã¤ã³ã¿ãæååã®çµç«¯ã«ããå ´åã«ã¯å¤±æãã¾ãã 大æåå°æåãåºå¥ããªãããããè¡ãããå ´åãã¯ã©ã¹ã®æå㯠大æåã»å°æåã®ä¸¡æ¹ã表ãã¾ããããã¯ãä¾ãã°ã大æåå°æå ãåºå¥ããªãå ´åã®ããã [aeiou] 㯠"a" ã¨åæ§ã« "A" ã«ããã ããæåå°æåãåºå¥ããªãå ´åã®ããã [^aeiou] 㯠"A" ã«ãã ããã¾ããã䏿¹ã大æåå°æåãåºå¥ããå ´åã¯ããããã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ã¾ã㯠<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãªã ã·ã§ã³ãã©ã®ããã«è¨å®ãããã¨ãæ¹è¡æåã¯ãæåã¯ã©ã¹ã«ããã¦ç¹ å¥ãªæ¹æ³ã§å¦çããã¾ããã[^a] ã®ãããªã¯ã©ã¹ã¯å¸¸ã«æ¹è¡ã«ããã ãã¾ãã ãã¤ãã¹ (ãã¤ãã³)æåã¯æåã¯ã©ã¹ã®ä¸ã§æåã®ç¯å²ãæå®ãã ããã«ä½¿ç¨ããã¾ããä¾ãã°ã[d-m] 㯠d 㨠m ã®éã®ãããã æåã«ããããã¾ããéã«ãã¹æåãã¯ã©ã¹ã®ä¸ã«å¿ è¦ãªå ´åã¯ã ããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããããã¯ã©ã¹ã®æåã¾ãã¯æå¾ã® ãããªç¯å²ã示ãã¨ã¯è§£éãããªãå ´æã«ä½¿ç¨ãã¦ä¸ããã æåãªãã©ã« "]" ãç¯å²ã®æå¾ã®æåã¨ãã¦ä½¿ç¨ãããã¨ã¯ã§ãã¾ ããã[W-]46] ã®ãããªãã¿ã¼ã³ã¯ã2ã¤æåã®ã¯ã©ã¹("W" ããã³ "-")ã®å¾ã«ãªãã©ã«æåå "46]" ãç¶ãã¦ããã¯ã©ã¹ã¨ãã¦è§£é ããã"W46]"ã¾ã㯠"-46]" ã«ããããã¾ããããããç¯å²ã®çµç«¯ ã¨ãã¦è§£éããã "]" ãããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããå ´åã [W-\]46] ã¯ç¯å²ã®å¾ã«2ã¤ã®æåãç¶ãä¸ã¤ã®ã¯ã©ã¹ã¨ãã¦è§£éã ãã¾ãã"]" ã®8é²ãããã¯16é²è¡¨ç¾ãç¯å²ã®çµç«¯ã¨ãã¦ä½¿ç¨å¯è½ ã§ãã ç¯å²æå®ã§ã¯ãASCII ç §åå¦çãè¡ãã¾ããç¯å²ã§ã¯ã[\000-\037] ã®ããã«æ°å¤çã«æå®ããæåã使ç¨å¯è½ã§ããæåãå«ãç¯å²ã 大æåå°æåãåºå¥ããªãããããè¨å®ããã¦ããã¨ãã«ä½¿ç¨ããã å ´åã大æåå°æåã®ä¸¡æ¹ã«ããããã¾ããä¾ãã°ã[W-c] ã¯ã [][\^_`wxyzabc] ã«ç価ã§ããã大æåå°æåã«é¢ä¿ãªããããã ã¾ããæåãã¼ãã«ã§ "fr" ãã±ã¼ã«ã使ç¨ãã¦ããå ´åã [\xc8-\xcb] ã¯ã大æåå°æåã®åºå¥ç¡ãã¢ã¯ã»ã³ãä»ãã® E ã« ããããã¾ãã æåå \d, \D, \s, \S, \w, \W ã¯æåã¯ã©ã¹ã®ä¸ã§ãæå®å¯è½ ã§ãããã¯ã©ã¹ã«ãããããæåã追å ãã¾ããä¾ãã°ã[\dABCDEF] ã¯ã16鲿°ã«ããããã¾ãããããè¨å·ã¯å¤§æåã¨çµã¿åããã¦ å°æåã«ãããã³ã°??ããç¯å²ã®çãæåéåãç°¡ä¾¿ã«æå®ãã ãã¨ãã§ãã¾ãã ä¾ãã°ãã¯ã©ã¹ [^\W_] ã¯æåã¾ãã¯æ°åã«ããããã¾ãããã¢ã³ã ã¼ã¹ã³ã¢ã«ã¯ããããã¾ããã \, -, (å§ç«¯ã®)^ 以å¤ã®å ¨ã¦ã®è±æ°åã§ãªãæåããã³çµç«¯ã® ] ã¯ã æåã¯ã©ã¹ã«ããã¦ç¹å¥ã§ãªãæåã§ãããã¨ã¹ã±ã¼ãããå ´åã§ã æªå½±é¿ã¯ããã¾ããã </literallayout> </refsect2> <refsect2 id="regexp.reference.verticalbar"> <title>åç´ãã¼</title> <literallayout> åç´ãã¼æåã¯ã鏿è¢ãæå®ãããã¿ã¼ã³ã§ä½¿ç¨ããã¾ããä¾ãã°ããã¿ã¼ã³ gilbert|sullivan ã¯ã"gilbert" ã¾ã㯠"sullivan" ã«ããããã¾ãã鏿è¢ã®æ°ã« å¶éã¯ããã¾ãããã¾ãã鏿è¢ã空ã¨ãããã¨ãå¯è½ã§ã (ç©ºã®æååã«ããããã¾ã)ããããã®éç¨ã¯ãå鏿è¢ãå·¦ãã å³ã«éã«è¡ããæåã«æåãããã®ã使ç¨ããã¾ãã鏿è¢ã(ä»¥ä¸ ã§èª¬æãã)ãµããã¿ã¼ã³ã®ä¸ã«ããå ´åã"æåãã"ã¨ãããã¨ã¯ ãµããã¿ã¼ã³ã®é¸æè¢ã¨åæ§ã«ã¡ã¤ã³ãã¿ã¼ã³ã®æ®ãã®é¨åãããã ããã¨ãããã¨ãæ?Wã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.internal_options"> <title>å é¨ãªãã·ã§ã³è¨å®</title> <literallayout> <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> , <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> , <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> , <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ã® è¨å®ã¯ã"(?" ããã³ ")" ã§æ¬ã£ã Perl ãªãã·ã§ã³æåã«ãã ãã¿ã¼ã³å é¨ã§å¤æ´å¯è½ã§ãã i <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>ãæå® m <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãæå® s <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãæå® x <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ãæå® ä¾ãã°ã(?im) ã¯å¤§æåå°æåãåºå¥ããªããè¤æ°è¡ãããã³ã°ã æå®ãã¾ãããã¤ãã³æåãåã«ã¤ãããã¨ã«ãããã®ãªãã·ã§ã³ ãè§£é¤ãããã¨ãå¯è½ã§ãã(?im-sx) ã®ããã«è¨å®ã¨è§£é¤ãçµã¿å ããããã¨ãå¯è½ã§ãããã®å ´åã¯ã<link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>ããã³<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãè¨å®ããã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ããã³ <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> ãè§£é¤ããã¾ããããæåããã¤ãã³ã®åã«ãå¾ã«ãæå®ããã å ´åããã®ãªãã·ã§ã³ã¯è§£é¤ããã¾ãã ãªãã·ã§ã³å¤æ´ã®é©ç¨ç¯å²ã¯è¨å®ãè¡ããããã¿ã¼ã³ã®å ´æã«ä¾å ãã¾ãããµããã¿ã¼ã³ã®å¤å´ã§è¨å®ãããå ´åããã®å¹æã¯ããªã ã·ã§ã³ã®è¨å®ãããã¯è§£é¤ããããã³ã°ã®æåã§è¡ãããã®ã¨åã ã¨ãªãã¾ããæ¬¡ã®ãã¿ã¼ã³ã¯ãå ¨ã¦å ¨ãåæ§ã«åä½ãã¾ãã (?i)abc a(?i)bc ab(?i)c abc(?i) ã¯ã³ã³ãã¤ã«å¾ã®ãã¿ã¼ã³ã¨ãã¦ã¯ããã¿ã¼ã³ abc ã« <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> ãè¨å®ãããã®ã¨ãªãåãã«ãªãã¾ããè¨ããããã¨ããã®ãã㪠"æä¸ä½ã®"è¨å®ã¯ã(ãµããã¿ã¼ã³å é¨ã§ä»ã®å¤æ´ãè¡ããªãéã) ãã¿ã¼ã³å ¨ä½ã«é©ç¨ããã¾ããæä¸ä½ã¨åãè¨å®ãè¤æ°åè¡ãã㦠ããå ´åãæãå³å´ã®è¨å®ã使ç¨ããã¾ãã ãµããã¿ã¼ã³ã®å é¨ã§ãªãã·ã§ã³ã®å¤æ´ãè¡ãããå ´åãå¹æã¯ ç°ãªãã¾ãããã®åä½ã®å¤æ´ã¯ãPerl 5.005 ã§è¡ããã¾ããã ãµããã¿ã¼ã³å ã®ãªãã·ã§ã³å¤æ´ã¯ããããæå®ãããµããã¿ã¼ ã³ã®ãã®é¨åã«ã®ã¿å½±é¿ãã¾ãããã®ããã (a(?i)b)c ã¯ãabc ããã³ aBc ã«ããããã(<link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>ã使ç¨ãã ã¦ããªãã¨ä»®å®ããå ´åã)ä»ã®æååã«ã¯ããããã¾ããã ãã®ããã«ããªãã·ã§ã³ã¯ããã¿ã¼ã³ã®åå ´æã«ç°ãªã£ãè¨å®ãè¡ã ãã¨ãå¯è½ã§ãããã鏿è¢ã«å¾¡ããªãã夿´ã¯å ¨ã¦ãåããµãã ã¿ã¼ã³å ã®å¾ã«ç¶ãæã«æ³¢åãã¾ããä¾ãã°ã (a(?i)b|c) ã¯ã"C" ã«ãããããéã«æåã®æããªãã·ã§ã³è¨å®åã«ç ´æ£ ããã¦ããã«ããããããã"ab", "aB", "c", "C" ã«ããããã¾ãã ããã¯ããªãã·ã§ã³è¨å®ã®å¹æãã³ã³ãã¤ã«æã«çãããã¨ã«ãã ã¾ããããã§ãªãã¨ãé常ã«å¥å¦ãªãã¨ãçãããã¨ã«ãªãã¾ãã PCRE ç¹æã®ãªãã·ã§ã³ã<link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link>ããã³<link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link>ã¯ããããæå U ããã³ X ã使ç¨ãããã¨ã«ãããPerl äºæã®ãªãã·ã§ã³ã¨åæ§ã«å¤ æ´ãããã¨ãå¯è½ã§ãã (?X) ãã©ã°ã®è¨å®ã¯ç¹å¥ã§ãæä¸ä½ã®å ´åã§ãã常ã«ãã¿ã¼ã³ å ã§ä»ã®è¨å®ããªã³ã«ããåã«æå®ããå¿ è¦ãããã¾ãã ãã®ãã©ã°ã¯ãæåã«æå®ããã®ãæåã§ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.subpatterns"> <title>ãµããã¿ã¼ã³</title> <literallayout> ãµããã¿ã¼ã³ã¯æ¬å¼§(丸æ¬å¼§)ã§åºåããããã¹ããå¯è½ã§ãã ãã¿ã¼ã³ã®ä¸é¨ããµããã¿ã¼ã³ã¨ãã¦æå®ããããã«ã¯ã2ã¤ã®ã ã¨ãè¡ãã¾ãã 1. 鏿è¢ã®éåããã¼ã«ã«åãã¾ããä¾ãã°ããã¿ã¼ã³ cat(aract|erpillar|) ã¯ãåèª "cat", "cataract", "caterpillar" ã«ããããã¾ãã æ¬å¼§ãã¤ããªãã¨ããã®ãã¿ã¼ã³ã¯ã"cataract", "erpillar" ã¾ãã¯ç©ºã®æååã«ããããã¦ãã¾ãã¾ãã 2. æ¬å¼§ã¯ããµããã¿ã¼ã³ã(以ä¸ã§å®ç¾©ãã)å¤ãåå¾ãããµããã¿ã¼ã³ ã¨ãã¦è¨å®ãã¾ãããã¿ã¼ã³å ¨ä½ãããããããµããã¿ã¼ã³ã«ããã ãã対象æååã®ä¸é¨ã¯ã <function>pcre_exec</function> ã® <emphasis>ovector</emphasis> 弿°ã«ããã³ã¼ã«ããå´ã«è¿ããã¾ããå¤ãåå¾ãããµããã¿ã¼ã³ã® çªå·ãå¾ãããã«æ¬å¼§ã®å§ã¾ãã¯(1ããå§ã¾ã£ã¦)å·¦ããå³ã«æ°ãããã¾ãã ä¾ãã°ãæåå "the red king" ãæ¬¡ã®ãã¿ã¼ã³ã«ããããããå ´åã the ((red|white) (king|queen)) åå¾ãããé¨åæååã¯ã "red king", "red", "king" ã§ããã ãããã 1, 2, 3 çªã¨ãªãã¾ãã æ¬å¼§ã2ã¤ã®æ©è½ãæãã¦ããã¨ããäºå®ã常ã«è¯ãæ¹ã«åãããã§ ã¯ããã¾ãããå¤ãåå¾ããå¿ è¦ã¯ãªããããµããã¿ã¼ã³ãè¤æ°ç¨ ãããã¨ãå¿ è¦ã§ããå ´åãå°ãªãããã¾ãããå·¦æ¬å¼§ã®å¾ã« "?:" ãä»ããå ´åããã®ãµããã¿ã¼ã³ã¯å¤ã®åå¾ãè¡ãããå¤ãåå¾ãã ãµããã¿ã¼ã³ã®çªå·ãè¨ç®ããéã«ãå ç®ããã¾ãããä¾ãã°ãæåå "the white queen" ã¯æ¬¡ã®ãã¿ã¼ã³ããããããã¦ã¿ã¾ãããã the ((?:red|white) (king|queen)) åå¾ãããé¨åæååã¯ã"white queen" 㨠"queen" ã§ããã 1çªã¨ 2çªã«ãªãã¾ããé¨åæååã®æå¤§æ°ã¯99ã§ãããå¤ã®åå¾ã è¡ããã®ã¨è¡ããªããã®ãåããã¦å ¨ãµããã¿ã¼ã³ã®æå¤§æ°ã¯ 200ã§ãã 便å©ãªç¥è¨ã¨ãã¦ããªãã·ã§ã³ã®è¨å®ãå¤ãåå¾ããªããµããã¿ã¼ã³ã® å é ã§æå®ããå¿ è¦ãããå ´åããªãã·ã§ã³ã®æåã "?" 㨠":" ã® éã«å ¥ãããã¨ãã§ãã¾ããã¤ã¾ããæ¬¡ã®2ã¤ã®ãã¿ã¼ã³ã (?i:saturday|sunday) (?:(?i)saturday|sunday) ã¯å ¨ãåãæååéåã«ããããã¾ãã鏿è¢ã¯å·¦ããå³ã«è©¦è¡ã ãããªãã·ã§ã³ã¯ãµããã¿ã¼ã³ã®çµç«¯ã«éããã¾ã§ãªã»ãããã㪠ãã®ã§ãããæã«ãããªãã·ã§ã³è¨å®ã¯å¾ã«ç¶ãæã«ãä½ç¨ãã¾ãã ãã®ãããä¸ã®ãã¿ã¼ã³ã¯ã"Saturday" ã¨åæ§ã«"SUNDAY" ã«ã ããããã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.repetition"> <title>ç¹°ãè¿ã</title> <literallayout> ç¹°ãè¿ãã¯ãå復æå®åã«ããæå®ãã¾ããæ¬¡ã®è¦ç´ ã®å¾ã«ä»ãã ãã¨ãåºæ¥ã¾ãã æåã¾ãã¯ã¨ã¹ã±ã¼ããããæå ã¡ã¿æå . æåã¯ã©ã¹ 徿¹åç § (次ã®ç¯ãåç §ä¸ãã) æ¬å¼§ã§æ¬ã£ããµããã¿ã¼ã³(è¨æãé¤ã - 以ä¸ãåç §ä¸ãã) é常ã®å復æå®åã¯ã大æ¬å¼§ã®ä¸ã«2ã¤ã®æ°ãã«ã³ãã§åºåã£ã¦æå® ãããã¨ã«ããããããå¯è½ãªæå°ã®æ°ã¨æå¤§ã®æ°ãæå®ãã¾ãã æå®ããæ°ã¯ã65536 æªæºã§ãããæåã®æ°ã¯2çªç®ã®æ°ä»¥ä¸ã§ãã å¿ è¦ãããã¾ããä¾ãã°ã z{2,4} ã¯ã"zz", "zzz", "zzzz" ã«ããããã¾ãã峿¬å¼§ã¯ããèªä½ç¹å¥ãª æåã§ã¯ããã¾ããã2çªç®ã®æ°åãçç¥ãããããã«ã³ããããå ´åã ä¸éã¯è¨å®ããã¾ããã2çªç®ã®æ°åã¨ã«ã³ãã®ä¸¡æ¹ãçç¥ãããå ´åã å復æå®åã¯ãå¿ è¦ãªãããã®æ°ãã®ãã®ãæå®ãã¾ããã¤ã¾ãã [aeiou]{3,} ã¯3å以䏿¯é³ãç¶ããã®ã«ããããã¾ããããã£ã¨å¤ãå ´åã«ã ããããã¾ãã䏿¹ã \d{8} ã¯8æ¡ã®æ°åã«ã®ã¿ããããã¾ãã左大æ¬å¼§ã¯å復æå®åãç½®ããªã å ´æã¾ãã¯å復æå®åã®æ§æã«ãããããªãå ´æã«ç½®ããå ´åãæå ãªãã©ã«ã¨ãã¦è§£éããã¾ããä¾ãã°ã{,6} ã¯å復æ¥Îåã§ã¯ãªãã 4ã¤ã®æåã®æåãªãã©ã«ã¨ãªãã¾ãã å復æå®åã¨ã㦠{0} ãæå®ãããã¨ãã§ããåã®é ç®ããã³å復 æå®åãåå¨ããªãã¨ããå¼ãæå®ãããã¨ã«ãªãã¾ãã ç°¡åã®ãããæã使ç¨ããã3ã¤ã®å復æå®åã«ã¯ã次ã®ãããª1æå ã®çç¥åãããã¾ãã * ã¯ã{0,} ã¨ç価ã§ãã + ã¯ã{1,} ã¨ç価ã§ãã ? ã¯ã{0,1} ã¨ç価ã§ãã å復ãè¨å®ãããã©ã®æåã«ããããããªã次ã®ãããªãµããã¿ã¼ã³ã« ããç¡éã«ã¼ãã使ãããã¨ãå¯è½ã§ãã (a?)* 以åã®ãã¼ã¸ã§ã³ã® Perl ããã³ PCRE ã¯ãã®ãããªãã¿ã¼ã³ã«é¢ ãã¦ã³ã³ãã¤ã«æã«ã¨ã©ã¼ãçºçãã¦ãã¾ããããããã便å©ãªå ´ åãããã®ã§ããã®ãããªãã¿ã¼ã³ã¯ç¾å¨ã¯è¨±å¯ããã¦ãã¾ãã ããããä»ã®ãµããã¿ã¼ã³ã®ç¹°ãè¿ããã©ã®æåã«ããããããªã å ´åãã«ã¼ãã¯å¼·å¶çã«ä¸æããã¾ãã ããã©ã«ãã§ã¯ãå復æå®å㯠"貪欲"ãã¤ã¾ããæ®ãã®ãã¿ã¼ã³ã 失æããããã¨ãªã(許å¯ãããåæ°ã®æå¤§æ°ã¾ã§)åºæ¥ãã ãå¤ã ã®ãã®ã«ããããã¾ãã ãã®åä½ãåé¡ãçããå¤å ¸çãªä¾ã¨ãã¦ã¯ã C ããã°ã©ã ã®ã³ã¡ã³ãã«ãããããããã¨ããå ´åãããã¾ãã ã³ã¡ã³ãã¯ã/* 㨠*/ ã®éã«ããã¾ããããã®ä¸ã«ãç¬ç«ããæå * 㨠/ ãç¾ããå¯è½æ§ãããã¾ããC ã®ã³ã¡ã³ãã«ãããããã ããã«ã次ã®ãã¿ã¼ã³ã使ç¨ãã¦ã¿ã¾ãããã /\*.*\*/ ãæåå /* first command */ not comment /* second comment */ ã«ä½¿ç¨ããå ´åã失æãã¾ããããã¯ã.* ã®è²ªæ¬²ãã®ããã§æå®ãã ãã¿ã¼ã³ãæååå ¨ä½ã«ããããã¦ãã¾ãããã§ãã ããããå復æå®åã®å¾ã«çå符ãç¶ããå ´åã貪欲ãã¯æ¶ãã 代ããã«æå°ã®ããããè¡ãã¾ãããã®ããããã¿ã¼ã³ã /\*.*?\*/ ã¯Cã³ã¡ã³ãã«æ£ããããããã¾ããæ§ã ãªå復æå®åã®æå³ã¯ã ä»ã«ã¯å¤åããã好ã¾ãããããã®æ°ã ãã夿´ããã¾ãã ãã®çå符ã®ä½¿ç¨æ³ãå復æå®åããã®å³ã«ããå ´åã®ä½¿ç¨æ³ã¨æ··ä¹±ã ãªãã§ä¸ããããã®ããã«2種é¡ã®ä½¿ç¨æ³ããããããæã ãæ¬¡ã®ããã« 2éã«ä½¿ç¨ããããã¨ãããã¾ãã \d??\d 鏿ã«ãã1æ¡ã®æ°åã«ããããã¾ããããã¿ã¼ã³ã®æ®ããããã ããå¯ä¸ã®æ¹æ³ã§ããå ´åã«ã¯ã2æ¡ã®æ°å¤ã«ããããããã¨ãå¯è½ã§ãã <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link>ãªãã·ã§ ã³ãè¨å®ãããå ´å(Perl ã§ã¯ãã®ãªãã·ã§ã³ã¯ä½¿ç¨ã§ãã¾ãã)ãå復 æå®åã¯ããã©ã«ãã§ã¯è²ªæ¬²ã§ã¯ããã¾ããã ãããããã®å復æå®åã¯ãå¾ãã«çå符ãã¤ãããã¨ã«ãã貪欲 ã«ãããã¨ãå¯è½ã§ããè¨ããããã¨ãçå符ã¯ãããã©ã«ãã®åä½ ãé転ãã¾ãã æ¬å¼§ã§æ¬ããããµããã¿ã¼ã³ã1ããå¤ãæå°ã®å復æ°ã¾ãã¯æå¤§æ° ã§æå®ããã¦ããå ´åãã³ã³ãã¤ã«æ¸ã¿ã®ãã¿ã¼ã³ã®ããã«ãæå¤§ ã¾ãã¯æå°ã®å¤§ããã«å¿ãã¦ããå¤ãã®ä¿åé åãå¿ è¦ã¨ãªãã¾ãã ãã¿ã¼ã³ãã.* ã¾ã㯠.(0,) ã§å§ã¾ãã(Perl ã§ç価ãªãã®ã¯ /s) <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãªãã·ã§ ã³ãè¨å®ããã¦ããå ´åã. ã¯æ¹è¡ã«ãããã§ããããã«ãªããæé»ã® ãã¡ã«ã¢ã³ã«ã¼ä»ãã¨ãªãã¾ãã ããã¯ãå¾ãã«ç¶ããã®ã«ãããã対象æååã®åæåã®ä½ç½®ã« 対ãã¦è©¦è¡ãããããã§ãããã®ãããæåã«ãããããå¾ã§ ã©ããã®ä½ç½®ã§å ¨ä½ã®ããããåã³è¡ããã¨ã¯ã§ãã¾ããã PCRE ã¯ãã®ãããªãã¿ã¼ã³ã \A ãåã«ãããã®ã¨ãã¦å¦çãã¾ãã 対象æååãæ¹è¡ãå«ã¾ãªããã¨ãæ¢ç¥ã®å ´åã ãã¿ã¼ã³ã .* ã§å§ã¾ãå ´åã®æé©åã®ããã«ããã㯠^ ãç¨ã㦠ã¢ã³ã«ã¼ãé½ã«ç¤ºãããã«<link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãè¨å®ããä¾¡å¤ ãããã¾ãã å¤ãåå¾ãããµããã¿ã¼ã³ãç¹°ãè¿ãããæãåå¾ãããå¤ã¯ã æå¾ã®ç¹°ãè¿ãã§ãããããé¨åæååã§ããä¾ãã°ã (tweedle[dume]{3}\s*)+ "tweedledum tweedledee" ãããããããå ´åãåå¾ãããé¨åæ ååã®å¤ã¯ã"tweedledee" ã§ãããããããã¹ããããå¤ãåå¾ ãããµããã¿ã¼ã³ãããå ´åã対å¿ããåå¾å¤ã¯åã®ç¹°ãè¿ãã§æ å®ããããã®ã«ãªãå¯è½æ§ãããã¾ããä¾ãã°ã /(a|(b))+/ ã "aba" ã«ããããããã¨ã2çªç®ã«åå¾ãããé¨åæååã¯ã "b" ã«ãªãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.back_references"> <title>徿¹åç §</title> <literallayout> æåã¯ã©ã¹ã®å¤ã§ãããã¯ã¹ã©ãã·ã¥ã®å¾ã« 0 ãã大ããæ°åã ä»ãããã®ã¯ãã¿ã¼ã³ã§ä»¥åã«(ããªãã¡å·¦ã«ãã)å¤ãåå¾ãã ãµããã¿ã¼ã³ã«å¯¾ãã徿¹åç §ã§ãããåã«ããå¤ã®åå¾ãè¡ã å·¦æ¬å¼§ã®æ°ã¾ã§ä½¿ç¨å¯è½ã§ãã ããããããã¯ã¹ã©ãã·ã¥ã®å¾ã«ç¶ã10鲿°ã10æªæºã®å ´åã¯å¸¸ã« 徿¹åç §ã¨ãã¦è§£éããããã¿ã¼ã³å ¨ä½ã®å¤ãåå¾ããå·¦æ¬å¼§ã®æ° ã«æºããªãå ´åã«ã®ã¿ã¨ã©ã¼ã¨ãªãã¾ãã è¨ããããã¨ãåç §ãããæ¬å¼§ã¯10æªæºã®æ°ã«ã¤ãã¦ã¯åç §ããå´ ã®å·¦ã«ããå¿ è¦ããªãã¨ãããã¨ã§ãã ããã¯ã¹ã©ãã·ã¥ã®å¾ã«æ°åãç¶ãå ´åã®å¦çã®è©³ç´°ã«ã¤ãã¦ã¯ã ä¸è¨ã® "ããã¯ã¹ã©ãã·ã¥"ã¨ããé¡ã®ç¯ãåç §ä¸ããã 徿¹åç §ã¯ããµããã¿ã¼ã³èªä½ãããããããã®ãããããã ç¾å¨ã®å¯¾è±¡æååã«ãããå¤ãåå¾ãããã¿ã¼ã³ãå®éã«ãããã ããã®ã«ããããã¾ãããã®ããããã¿ã¼ã³ (sens|respons)e and \1ibility ã¯ã"sense and sensibility" ããã³ "response and responsi- bility" ã«ããããã¾ããã"sense and responsibility" ã«ã¯ ããããã¾ããã徿¹åç §ã®æç¹ã§ã大æåå°æåãåºå¥ããããã ãæå¹ã®å ´åãæåã®å¤§æåå°æåãé¢ä¿ãã¾ããä¾ãã°ã ((?i)rah)\s+\1 ã¯ã"rah rah" ããã³ "RAH RAH" ã«ããããã¾ããã å ã®åå¾ãããµããã¿ã¼ã³ã¯å¤§æåå°æåãåºå¥ããããããã¦ã ãã«ããããããã"RAH rah" ã«ã¯ããããã¾ããã åããµããã¿ã¼ã³ã«è¤æ°åã®å¾æ¹åç §ãè¡Fãã¨ãã§ãã¾ãããã ãµããã¿ã¼ã³ãç¹å®ã®ãããã§å®éã«ã¯ä½¿ç¨ããã¦ããªãå ´åã 徿¹åç §ã¯å¸¸ã«å¤±æãã¾ããä¾ãã°ããã¿ã¼ã³ (a|(bc))\2 ã¯ã"bc" ã§ã¯ãªã "a" ã«æåã«ãããããå ´åã«å¸¸ã«å¤±æãã¾ãã æå¤§ 99 åã®å¾æ¹åç §ã使ç¨ã§ãããããããã¯ã¹ã©ãã·ã¥ã®å¾ã« æ°åãç¶ããã®ã¯å ¨ã¦å¾æ¹åç §çªå·ã®å¯è½æ§ãããéåã¨ãã¦è§£é ããã¾ãã ãã¿ã¼ã³ã®å¾ã«æ°åãç¶ãå ´åã徿¹åç §ãçµäºããããã« ãªãããã®åºåãæåãç½®ãå¿ è¦ãããã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ãªã ã·ã§ã³ãè¨å®ãã¦ããå ´åã空ç½ãåºåãæåã¨ãããã¨ãã§ãã¾ãã ãã®ä»ã®å ´åã¯ç©ºã®ã³ã¡ã³ãã使ç¨ã§ãã¾ãã åç §ããæ¬å¼§ã®ä¸ã«ãã徿¹åç §ã¯ããµããã¿ã¼ã³ãæåã«ä½¿ç¨ã ãéã«å¤±æãã¾ãããã®ããã(a\1) ã¯ä½ã«ãããããã¾ããã ãããããã®ãããªåç §ã¯ãè¤æ°å使ç¨ãããµããã¿ã¼ã³ã®å é¨ã§ æç¨ã§ããä¾ãã°ã次ã®ãã¿ã¼ã³ (a|b\1)+ ã¯ã"a" ã®ä¸¦ã³ãããã³ "aba"ã"ababaa" çã«ãããããã¾ãã ãµããã¿ã¼ã³ã®åå復ã«ããã¦ã徿¹åç §ã¯ãåã®ç¹°ãè¿ãã«å¯¾å¿ ããæååã«ããããã¾ãããããåä½ãããããã«ãæåã®å復 æã«å¾æ¹åç §ã«ãããããå¿ è¦ããªããããªãã¿ã¼ã³ã§ããå¿ è¦ã ããã¾ããããã¯ä¸ã®ä¾ã®ããã«é¸æã使ç¨ããããã¼ããæå°ã¨ ããå復æå®åã«ããè¡ããã¨ãã§ãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.assertions"> <title>è¨æ</title> <literallayout> è¨æã¯ãç¾å¨ããããè¡ã£ã¦ããä½ç½®ã®å¾ã«ç¶ããåã«ããæå㫠対ãããã¹ãã§ãããå®éã«ã¯æåã¸ã®ä½ç¨ãè¡ãã¾ããã \b, \B, \A, \Z, \z, ^, $ ã®ãããªç°¡åãªè¨æã³ã¼ãã以ä¸ã§èª¬ æãã¾ããããè¤éãªè¨æã¯ããµããã¿ã¼ã³ã¨ãã¦ã³ã¼ãåããã¾ ãã2種é¡ã®è¨æãããã¾ãã対象æååã«ããã¦ç¾å¨ä½ç½®ã®åã è¦ããã®ã¨ãå¾ããè¦ããã®ã§ãã è¨æãµããã¿ã¼ã³ã¯ãç¾å¨ããããè¡ã£ã¦ããä½ç½®ã夿´ãããªã ãã¨ãé¤ããé常ã¨åãããã«ãããããã¾ããåæ¹ã¸ã®è¨æã¯ã è¯å®è¨æã®å ´å (?= ã§ãå¦å®è¨æã®å ´å (?! ã§å§ã¾ãã¾ããä¾ãã°ã \w+(?=;) ã¯ãã»ãã³ãã³ãå¾ã«ç¶ãåèªã«ããããã¾ãããããããããã® ã«ã¯ãã»ãã³ãã³ãå«ã¾ãããããã¦ã foo(?!bar) ã¯ã"bar" ãå¾ãã«ç¶ããªã "foo" ã«ããããã¾ãã è¦ããã¯ä¼¼ã¦ãããã¿ã¼ã³ã«æ³¨æãã¦ä¸ããã (?!foo)bar ã¯ã"foo" 以å¤ã®ãã®ãåã«ãã "bar" ã®åå¨ãè¦ã¤ãããã¾ããã æ¬¡ã®3æåã "bar" ã§ããå ´åã«ã(?!foo) ã¯å¸¸ã« &true; ã¨ãªããã ã«ããã®ãã¿ã¼ã³ã¯ã"bar" ã®åå¨ãè¦ã¤ãããã¨ãã§ããªãã®ã§ãã ãã®åä½ãå®ç¾ããããã«ã¯ã徿¹è¨æãå¿ è¦ã§ãã 徿¹è¨æã¯ãè¯å®è¨æã®å ´å (?<= ã§ãå¦å®è¨æã®å ´å (?<! ã§å§ã¾ãã¾ããä¾ãã°ã (?<!foo)bar ã¯ã"foo" ãåã«ãªã "bar" ã®åå¨ãè¦ã¤ãã¾ãã徿¹è¨æã®å 容 ã¯ããããããæååå ¨ä½ãåºå®é·ã§ããå¿ è¦ããããã¨ã«å¶éã ãã¦ãã¾ããããããè¤æ°ã®é¸æè¢ãããå ´åãå ¨ã¦ã®åãåºå®é· ã§ããå¿ è¦ã¯ããã¾ãããã¤ã¾ãã (?<=bullock|donkey) ã¯ä½¿ç¨å¯è½ã§ããã (?<!dogs?|cats?) ã¯ã³ã³ãã¤ã«æã«ã¨ã©ã¼ãçãã¾ããç°ãªã£ãé·ãã®æååã«ãã ãããæã¯ã徿¹è¨æã®æä¸ä½ã§ã®ã¿ä½¿ç¨å¯è½ã§ãããã®æ©è½ã¯ã å ¨ã¦ã®æã®åãé·ãã®æååã«ãããããå¿ è¦ããã Perl 5.005 ã«å¯¾ãã¦æ¡å¼µããã¦ãã¾ããæ¬¡ã®ãããªè¨æ (?<=ab(c|de)) ã¯ãæä¸ä½ã®æã2ã¤ã®ç°ãªã£ãé·ãã«ããããå¾ãããã使ç¨ã§ã ã¾ãããããããæä¸ä½ã®æã2ã¤ä½¿ç¨ããããã«æ¸ãæããå ´åã¯ã 使ç¨å¯è½ã§ãã (?<=abc|abde) 徿¹è¨æã®å®è£ ã«ããã¦ã¯ãé¸æè¢æ¯ã«ä¸æçã«åºå®ã®å¹ ã ãç¾å¨ã® ä½ç½®ãå¾éãããããã試ã¿ã¾ããç¾å¨ä½ç½®ã®åã«ååãªæåããªã å ´åã¯ããããã¯å¤±æã¨ã¿ãªããã¾ãã1度ãã使ç¨ãããªããµãã ã¿ã¼ã³ã¨çµã¿åããã徿¹è¨æã¯ãæååã®çµç«¯ã§ã®ãããã³ã°ã« ç¹ã«æç¨ã§ããç¯ã®æå¾ã«1度ã ã使ç¨ãããµããã¿ã¼ã³ã®ä¾ã示ã ã¾ãã (ãããã種é¡ã®)è¤æ°ã®è¨æãé£ç¶ãã¦æå®ãããã¨ãå¯è½ã§ãã ä¾ãã°ã (?<=\d{3})(?<!999)foo ã¯åã« "999" ã§ãªã3æ¡ã®æ°åããã "foo" ã«ããããã¾ãã åè¨æã¯å¯¾è±¡æååã®åãå ´æã«ç¬ç«ãã¦é©ç¨ããããã¨ã«æ³¨æãã¦ä¸ ãããã¾ããåã®3æåãå ¨ã¦æ°åã§ãããã¨ããã§ãã¯ãããç¶ãã¦ã åã3æåã"999"ã§ãªããã¨ã確èªããã¾ãããã®ãã¿ã¼ã³ã¯ã"foo"ã® åã«6åã®æåãããããã®ççããæ°åã§æå¾ã®3æåã"999"ã§ãªãã ã¿ã¼ã³ã«ã¯ããããã¾ãããä¾ãã°ã"123abcfoo"ã«ã¯ããããã¾ããã ãããè¡ããã¿ã¼ã³ã¯æ¬¡ã®ããã«ãªãã¾ãã (?<=\d{3}...)(?<!999)foo ãã®æãæåã®è¨æã¯ãå è¡ãã6ã¤ã®æåãæ¢ããæåã®3æåãæ°å ã§ãããã¨ã確èªãã¾ããç¶ãã¦ã2çªç®ã®è¨æã¯ãå è¡ãã3æåã "999"ã§ãªããã¨ã確èªãã¾ãã è¨æã¯ãèªç±ã«çµã¿åããã¦ãã¹ãããããã¨ãå¯è½ã§ããä¾ãã°ã (?<=(?<!foo)bar)baz ã¯ã"bar" ãåã«ãããéã« "foo" ãåã«ãªã "baz" ã«ããããã¾ãã 䏿¹ã (?<=\d{3}(?!999)...)foo ã¯ã3æ¡ã®æ°ãå è¡ããä¸ã®3æåã"999"ã§ãªã"foo"ã«ãããããå¥ã® ãã¿ã¼ã³ã§ãã è¨æã®ãµããã¿ã¼ã³ã¯å¤ãåå¾ãããµããã¿ã¼ã³ã§ã¯ãªããç¹°ã è¿ãããªãããããã¾ãããããã¯ãåããã¨ãè¤æ°åè¨æããã® ã¯æå³ããªãããã§ããããè¨æãå¤ãåå¾ãããµããã¿ã¼ã³ã ä¸ã«å«ãã§ããå ´åããã¿ã¼ã³å ¨ä½ã®ä¸ã§å¤ãåå¾ãããµããã¿ã¼ ã³ãæ°ããããã«å¸¸ã«æ°ãä¸ãããã¾ãã åå¾ããé¨åæååã¯ãè¯å®è¨æã§ã¯ä½¿ç¨ããã¾ãããå¦å®è¨æ ã§ã¯æå³ãæã¡ã¾ããã è¨æã®æ¬å¼§ã§æ¬ããããµããã¿ã¼ã³ã®æ°ã¯ãæå¤§ 200 ã§ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.onlyonce"> <title>ä¸åã ã使ç¨ãããµããã¿ã¼ã³</title> <literallayout> å復ãæå¤§åããã³æå°åããå ´åã¯å ±ã«ãå¾ã«ç¶ããã®ã¸ã®ãã ãã失æããå ´åãå復æ°ãå¤ããå ´åã«ãã¿ã¼ã³ã®æ®ãã«ããã ãããã¨ãã§ãããã©ããã調ã¹ãããã«å復ããé ç®ãåè©ä¾¡ã ãã¾ãã æã ãããããåä½ãè¡ããªãæ¹ã便å©ãªãã¨ããã¾ãã ããã¯ããã¿ã¼ã³ã®ä½è ãç¶ãã¦ãã価å¤ããªãã¨ããã£ãæã« ãããã®ç¹æ§ã夿´ããããä»ã®ãã¨ãããããããåã«å¤±æãã ãå ´åã§ãã ä¾ãã°ããã¿ã¼ã³ \d+foo ãæ¬¡ã®å¯¾è±¡ã«é©ç¨ããå ´åãèãã¦ã¿ã¾ ãããã 123456bar 6æ¡ã®æ°åã«ãããããå¾ã"foo" ã«ãããããã®ã«å¤±æãã¾ãã ãããå¦çã®é常ã®åä½ã§ã¯ã5æ¡ã®æ°åã®ã¿ã \d+ ã«ããããã ã¨ãã¦ã§å度試è¡ãè¡ããç¶ã㦠4 æ¡ã¨ãã£ãããã«å®å ¨ã«å¤±æ ããã¾ã§è©¦è¡ãè¡ãã¾ããä½¿ãæ¨ã¦ã®ãµããã¿ã¼ã³ã¯ã ãã¿ã¼ã³ã®ä¸é¨ãä¸åãããããããåè©ä¾¡ãããªããã¨ãæå®ã ããã®ã§ãããã®ãããæåã« "foo" ã¸ã®ãããã«å¤±æããæç¹ ã§ããã ã¡ã«ããããã¨ãããããã¾ãã 表è¨ã«ã¯ã次ã®ä¾ã®ããã« (?> ã§å§ã¾ãå¥ã®ç¹å¥ãªæ¬å¼§ãç¨ã ã¾ãã (?>\d+)bar ãã®ç¨®é¡ã®æ¬å¼§ã¯ãä¸åããããè¡ããããã¿ã¼ã³ã®ä¸é¨ã«éµãã ãããã®ãã¿ã¼ã³ã¸ã®åãããã¯å¤±æãã¾ãã ãããããããã«æåããåã®åãããã¯ãé常ã¨åæ§ã«åä½ãã¾ ãã ãã®åã®ãµããã¿ã¼ã³ã¯ã対象æååã®ç¾å¨ã®ç¹ã«ã¢ã³ã«ã¼ããã å ´åãåãå¤ç«ãããã¿ã¼ã³ããããããæååã«ãããããã¨ã ãããã«ã説æã§ãã¾ãã ä½¿ãæ¨ã¦ã®ãµããã¿ã¼ã³ã¯ããµããã¿ã¼ã³ã®å¤ãåå¾ãã¾ããã ä¸ã®ä¾ã®ããã«ç°¡åãªå ´åã¯ãã§ããã ãå¤ãã®ãã®ãåã¿è¾¼ã ããå復ãæå¤§åããã¨èãããã¾ãã ãã®ããã\d+ ããã³ \d+? ãæ°åã®æ°ã調æ´ãã¤ã¤æ®ãã®ãã¿ã¼ã³ ããããããããããããç¹°ãè¿ãã®ã«å¯¾ãã¦ã(?>\d+) 㯠æ°åã®ä¸¦ã³å ¨ä½ã«ã®ã¿ããããå¯è½ã§ãã ãã®æ§é ã¯ãä»»æã®è¤éãªãµããã¿ã¼ã³ãå«ããã¨ãã§ãããã¹ã ãããã¨ãå¯è½ã§ãã ä½¿ãæ¨ã¦ã®ãµããã¿ã¼ã³ã¯ãæååã®çµç«¯ã«å¯¾ããããããå¹çç ã«æå®ããããã«å¾æ¹è¨æãçµã¿åããã¦ä½¿ç¨ã§ãã¾ããæ¬¡ã®ç°¡å ãªãã¿ã¼ã³ãè¦ã¦ã¾ãããã abcd$ ãããããªãé·ãæååã«é©ç¨ããå ´åãèãã¾ãã ãããã¯å·¦ããå³ã«è¡ããããããPCRE ã¯å¯¾è±¡ã® "a" ãæ¢ãã å¾ã«ãããã®ããã¿ã¼ã³ã®æ®ãã«ããããããã©ã??調ã¹ã¾ãã ãã¿ã¼ã³ã次ã®ããã«æå®ãããå ´åã ^.*abcd$ æåã® .* ã¯ã¾ãæååå ¨ä½ã«ããããã¾ãããããã«å¤±æããå ´ åãæå¾ã®æå以å¤ã®å ¨ã¦ã®ãã®ã«ãããããããå度ãããã è¡ããç¶ãã¦æå¾ã®2æå以å¤ã¨ãã風ã«åä½ãã¾ãã "a" ã®æ¤ç´¢ãæååå ¨ä½ã«å¯¾ãã¦å·¦ããå³ã«å度è¡ãããã å¹çã¯è¯ãããã¾ããããããããã¿ã¼ã³ã次ã®ããã«æ¸ããå ´åã ^(?>.*)(?<=abcd) ãã®å ´åã¯ã.* ã«é¢ããåæ¤ç´¢ã¯è¡ããããæååå ¨ä½ã«ã®ã¿ãã ããã¾ããç¶ã徿¹è¨æã¯ãæå¾ã®4æåã«å¯¾ãã試è¡ã1åã ãè¡ ãã¾ããããã失æããå ´åããããã¯ãã ã¡ã«å¤±æãã¾ããé·ã æååã®å ´åããã®æ¹æ³ã«ããå®è¡æéã«ã¯ããªãã®å·®ãçãã¾ãã ãã¿ã¼ã³ã®ç¡å¶éã®ç¹°ãè¿ãããµããã¿ã¼ã³å ã«æãã¦ããããã®ãµã ãã¿ã¼ã³èªä½ã®ç¡å¶éã®å復ãå¯è½ãªå ´åãä¸åº¦éãã®ãµããã¿ã¼ã³ã® 使ç¨ããããã«é常ã«é·ãæéããã失æãããã¨ãåé¿ããããã®å¯ ä¸ã®ææ®µã§ãã ãã¿ã¼ã³ (\D+|<\d+>)*[!?] ã¯ãç¡å¶éã®æ°ã®å¯æååã«ããããã¾ãããã®å¯æååã¯éæ°å¤ãã ãªãã<>ã§æ¬ãããæ°å¤ã®ã©ã¡ããã§ãå¾ã« ! ã¾ã㯠? ãç¶ããã®ã§ ãããããããå ´åãå®è¡ã¯é«éã§ãããããã以ä¸ã®æååã«é©ç¨ã ãå ´åã aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ã¨ã©ã¼ãåºåããã¾ã§ã«é·ãæéãè¦ãã¾ããããã¯ãäºã¤ã®åå¾©ã«æ ååãåå²ãã鏿è¢ãå¤ããå ¨ã¦è©¦ã¿ãå¿ è¦ãããããã§ãã(ãã®ä¾ ã§ã¯ãçµç«¯ã«åä¸ã®æåã§ã¯ãªã[!?]ã使ç¨ãã¦ãã¾ããããã¯ãPCRE ã¨Perlã¯å ±ã«åä¸ã®æåã使ç¨ããå ´åã«ããæ©ã失æã¨å¤å®ãããã ã«æé©åããããã§ãããããã«å¿ è¦ãªæå¾ã®ä¸æåããããã¯è¨æ¶ã ã¦ãããæååã«ããããªãå ´åã«æ©æã«å¤±æã¨å¤å®ãã¾ãã) ãã®ãã¿ã¼ã³ã次ã®ããã«å¤æ´ããå ´åã ((?>\D+)|<\d+>)*[!?] æ°å以å¤ã®ä¸¦ã³ã«ããä¸åãçãããã¨ããªããªãã失æã¯æ©æã«çã ã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.conditional"> <title>æ¡ä»¶ä»ããµããã¿ã¼ã³</title> <literallayout> è¨æã®çµæã¾ãã¯åã®å¤ãåå¾ãããµããã¿ã¼ã³ãããããããã© ããã«ããããµããã¿ã¼ã³ã®ãããå¦çãè¡ã£ããããµããã¿ã¼ã³ã® 2ã¤ã®é¸æè¢ã鏿ããããããã¨ãå¯è½ã§ããæ¡ä»¶ä»ããµããã¿ã¼ ã³ã«ã¯2ã¤ã®å½¢å¼ãããã¾ãã (?(condition)yes-pattern) (?(condition)yes-pattern|no-pattern) æ¡ä»¶ãæºããããå ´åãyes-pattern ã使ç¨ããã¾ããããã§ãªã å ´åã¯ã(æå®ãããå ´åã¯) no-pattern ã使ç¨ããã¾ãããµãã ã¿ã¼ã³ã«2ã¤ä»¥ä¸ã®é¸æè¢ãããå ´åãã³ã³ãã¤ã«æã«ã¨ã©ã¼ã«ãªã ã¾ãã 2種é¡ã®æ¡ä»¶ãããã¾ããæ¬å¼§ã®éã®ããã¹ããæ°åã®ä¸¦ã³ãããªã å ´åãæ¡ä»¶ã¯ããã®çªå·ã®å¤ãåå¾ãããµããã¿ã¼ã³ãåã«ããã ãã¦ããå ´åã«æºãããã¾ããæ¬¡ã®ãã¿ã¼ã³ãè¦ã¦ã¿ã¾ãããã å¯èªæ§ãé«ããããã«æå³ã®ãªã空ç½ãæ¿å ¥ã(PCRE_EXTENDED ãªãã·ã§ã³ãæå®ãããã¨ä»®å®ãã¾ã)ã説æãç°¡åã«ãããã 3ã¤ã®é¨åã«åå²ãã¦ãã¾ãã ( \( )? [^()]+ (?(1) \) ) æåã®é¨åã¯ããªãã·ã§ã³ã®å·¦æ¬å¼§ã«ããããããã®æåãããå ´ åã«ãæåã®é¨åæååã¨ãã¦è¨å®ãã¾ãã第2ã®é¨åã¯ãæ¬å¼§ä»¥å¤ ã®ä¸ã¤ä»¥ä¸ã®æåã«ããããã¾ãã第3ã®é¨åã¯ãæåã®æ¬å¼§ã«ãã ããããã©ããã調ã¹ãæ¡ä»¶ä»ããµããã¿ã¼ã³ã§ããããããã¦ãã å ´åãã¤ã¾ãã対象ãå·¦æ¬å¼§ã§å§ã¾ã£ã¦ããå ´åãæ¡ä»¶ã¯&true;㨠ãªããyes-pattern ãå®è¡ããã峿¬å¼§ãå¿ è¦ã¨ãªãã¾ãã ããã§ãªãå ´åãno-pattern ãåå¨ããªãããããµããã¿ã¼ã³ã¯ ä½ã«ãããããã¾ãããè¨ããããã¨ããã®ãã¿ã¼ã³ã¯ãæ¬å¼§ãªã ã®ä¸¦ã³ã«ããããããªãã·ã§ã³ã§æ¬å¼§ã§å²ã¾ãã並ã³ã«ããããã¾ãã æ¡ä»¶ãæ°åã®ä¸¦ã³ã®å ´åãè¨æã¨ãªãã¾ããè¯å®ãããã¯å¦å®ã® åæ¹ã¾ãã¯å¾æ¹è¨æã¨ãªãã¾ããæ¬¡ã®ãã¿ã¼ã³ãè¦ã¦ã¿ã¾ãããã ãã®ãã¿ã¼ã³ã«ãæå³ã®ãªããã¿ã¼ã³ãæ¿å ¥ãã2ã¤ã®é¸æè¢ã2è¡ ç®ã«ç½®ãã¦ãã¾ãã (?(?=[^a-z]*[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) æ¡ä»¶ã¯ãè¯å®å¾æ¹è¨æã§ãããè±å以å¤ã®æåã®ä¸¦ã³ããã®å¾ã« è±åãç¶ããã®ã«ããããã¾ããè¨ããããã¨ã対象æååã«å°ãª ãã¨ãæåãä¸ã¤ãããã©ããã調ã¹ã¾ããæåãã¿ã¤ããã¨ã æ¤ç´¢å¯¾è±¡ã¯æåã®é¸æè¢ã«å¯¾ãã¦ããããã¾ããã¿ã¤ãããªãå ´å ã¯ã2çªç®ã«ããããã¾ãããã®ãã¿ã¼ã³ã¯ã2ã¤ã®å½¢å¼ dd-aaa-dd ã¾ã㯠dd-dd-dd ã®ã©ã¡ããã®æååã«ããããã¾ãããã ãã aaa ã¯è±åãdd ã¯æ°åã§ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.comments"> <title>ã³ã¡ã³ã</title> <literallayout> (?# ã¨ãã並ã³ã¯ãéå§ãæå®ãã¾ããã³ã¡ã³ãã¯ã次ã®å³æ¬å¼§ã¾ã§ ç¶ãã¾ããæ¬å¼§ã®ãã¹ãã¯è¨±å¯ããã¾ãããã³ã¡ã³ãä¸ã®æåã¯ã ãã¿ã¼ã³ãããã³ã°ã«ã¯å ¨ãé¢ä¿ãã¾ããã PCRE_EXTENDED ãªãã·ã§ã³ãè¨å®ããã¦ããå ´åãæåã¯ã©ã¹ã®å¤ ã«ããã¨ã¹ã±ã¼ãããã¦ããªã # æåã¯ãã³ã¡ã³ããæå®ãã¾ãã ã³ã¡ã³ãã¯ããã¿ã¼ã³ä¸ã®æ¬¡ã®æ¹è¡æåã¾ã§ç¶ãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.recursive"> <title>å帰çãã¿ã¼ã³</title> <literallayout> ç¡å¶éã®ãã¹ãã許容ããæ¬å¼§ãå«ãæååã«ããããè¡ãåé¡ãèã ã¦ã¿ã¾ããããå帰ã使ç¨ããªãå ´åãå®ç¾å¯è½ãªæè¯ã®æ¹æ³ã¯ãä½ã ãã®åºå®ããæ·±ãã®ãã¹ãã¾ã§ããããè¡ããã¿ã¼ã³ã使ç¨ãããã¨ã§ ããããã§ã¯ãä»»æã®æ·±ãã®ãã¹ããå¦çãããã¨ã¯ã§ãã¾ãããPerl 5.6ã§ã¯ã(ä»ã®æ©è½ã¨å ±ã«)æ£è¦è¡¨ç¾ã§å帰ãè¡ããã¨ãå¯è½ã«ããå®é¨ çãªæ©è½ããµãã¼ãããã¦ãã¾ããå°ç¨ã®ã·ã¼ã±ã³ã¹ (?R)ãå帰ãæå® ããããã«ãµãã¼ãããã¦ãã¾ãããã®PCREãã¿ã¼ã³ã«ãããã®æ¬å¼§ã® åé¡ã¯æ¬¡ã®ããã«è§£æ±ºããã¾ãã(空ç½ãç¡è¦ããããã«<link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ãªãã·ã§ã³ ãè¨å®ããã¦ããã¨ä»®å®ãã¾ã) \( ( (?>[^()]+) | (?R) )* \) ã¾ãããã®ãã¿ã¼ã³ã¯éãæ¬å¼§ã«ããããã¾ããç¶ãã¦ãæ¬å¼§ä»¥å¤ã®ä¸¦ ã³ã¾ãã¯ãã¿ã¼ã³èªä½ã«å帰çã«ãããããé¨åæååã«ä½åã§ããã ããã¾ããæå¾ã«éãæ¬å¼§ã«ããããã¾ãã ãã®ãã¿ã¼ã³ä¾ã«ã¯ããã¹ãããç¡å¶éã®å復ãå«ã¾ãã¦ããããã®ã ãããããããªãæååã®ãã¿ã¼ã³ãé©ç¨ããéã«æ¬å¼§ä»¥å¤ã®æååã« ä¸åã ãããããããµããã¿ã¼ã³ã使ç¨ãããã¨ãéè¦ã§ããä¾ãã°ã ãã®ãã¿ã¼ã³ãæ¬¡ã®æååã«é©ç¨ããå ´åã (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() "ãããããªã"ã¨ããå¤å®ãéããã«è¡ããã¾ããããããä¸åéãã® ãµããã¿ã¼ã³ã使ç¨ããªãå ´åã対象æååãåå²å¯è½ãª + 㨠* ã®å 復ã®ç¨®é¡ãé常ã«å¤ãã失æãåºåããåã«å ¨ã¦ã確èªããå¿ è¦ããã ããããããã«éå¸¸ã«æéããããã¾ãã å¤ãåå¾ãããµããã¿ã¼ã³ã«è¨å®ãããå¤ã¯ããµããã¿ã¼ã³ã®å¤ãè¨å® ãããæãå¤å´ã®å帰ã®ã¬ãã«ããã®ãã®ã§ããä¸è¨ã®ãã¿ã¼ã³ãä»¥ä¸ ã«ããããããå ´åã (ab(cd)ef) å¤ãåå¾ããæ¬å¼§ã®å¤ã¯"ef"ã§ãããæä¸ä½ã¬ãã«ã®æå¾ã®å¤ã§ãã æ¬¡ã®ããã«æ¬å¼§ã追å ããã¨ã \( ( ( (?>[^()]+) | (?R) )* ) \) åå¾ãããæååã¯ã"ab(cd)ef" 㨠ãªããæä¸ä½ã¬ãã«ã®æ¬å¼§ã®ä¸èº«ã¨ãªãã¾ããä¸ã¤ã®ãã¿ã¼ã³å ã« 15以ä¸ã®åå¾ç¨æ¬å¼§ãããå ´åãPCREã¯å帰ã®éã®ãã¼ã¿ä¿åç¨ã« 追å ã®ã¡ã¢ãªãåå¾ããå¿ è¦ãããã¾ããããã¯ãpcre_malloc ã« ãã確ä¿ãããå¾ã§ pcre_free ã«ããéæ¾ããã¾ããã¡ã¢ãªãå å¾ã§ããªãå ´åãã¡ã¢ãªä¸è¶³ã¨ã©ã¼ãå帰ã®å å´ããåºåããææ®µ ã¯ãªããããæåã®15åã®åå¾ç¨æ¬å¼§ã«ã¤ãã¦ã®ã¿ãã¼ã¿ãä¿åã ãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.performances"> <title>æ§è½</title> <literallayout> ãã¿ã¼ã³ã®å¹¾ã¤ãã®è¦ç´ ã¯ãä»ã®è¦ç´ ãããããå¹ççã§ãã (a|e|i|o|u) ã®ãããªé¸æè¢ã®éåããã [aeiou] ã®ãããªæå㯠ã©ã¹ã®æ¹ãããå¹ççã§ããä¸è¬ã«ãæ§æãæãç°¡åãªãã®ã ããã¦ãæãå¹çãè¯ãã§ããJeffrey Friedl ã®æ¬ã«ã¯ã æ§è½åä¸ã®ããã«æ£è¦è¡¨ç¾ã®æé©åã«é¢ããå¤ãã®è°è«ã è¨è¿°ããã¦ãã¾ãã ãã¿ã¼ã³ã .* ã§å§ã¾ãã<link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãªãã·ã§ã³ãè¨ å®ããã¦ããå ´åã対象æååã®å§ç«¯ã§ããã¾ã£ã¡ã§ããªãããããã¿ã¼ ã³ã¯PCREã«ããæé»ã®ãã¡ã«ã¢ã³ã«ã¼ä»ãã¨ãªãã¾ãã ãããã<link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> ãè¨å®ããã¦ããªãå ´åãã¡ã¿æå . ãæ¹è¡ã«ãããããªãã®ã§ãPCRE ã¯ãã®æé©åãè¡ãã¾ããã 対象æååãæ¹è¡ãå«ãå ´åããã¿ã¼ã³ã¯æååã®å§ç«¯ããã§ã¯ãªã åæ¹è¡ã®ç´å¾ã®æåãããããããå¯è½æ§ãããã¾ããä¾ãã°ã ãã¿ã¼ã³ (.*) second ã¯ã対象æåå "first\nand second" (ãã ãã\n ã¯æ¹è¡æåã æå³ãã¾ã) ã«ããããã¾ãã æåã«å¤ãåå¾ãããé¨åæååã¯ã"and" ã«ãªãã¾ãããããå ä½ãããã«ã¯ãPCRE ã¯å¯¾è±¡æååã®åæ¹è¡ã®å¾ããããããå度 éå§ããå¿ è¦ãããã¾ãã ãã®ãããªãã¿ã¼ã³ãæ¹è¡ãå«ã¾ãªã対象æååã«ä½¿ç¨ããå ´åã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãè¨å®ã ãããã¢ã³ã«ã¼ä»ãã§ãããã¨ãé½ã«ç¤ºãããã«ãã¿ã¼ã³ã ^.* ã§éå§ ãããã¨ã«ããæé«ã®æ§è½ãå¾ããã¾ãã ããã«ãããPCRE ã対象æååã®æ¹è¡ãæ¢ããããã§åã¹ã¿ã¼ã ãããã¨ã鲿¢ãã¾ãã ãã¹ãããæªç¢ºå®ã®å復ãæãããã¿ã¼ã³ã«ã¯æ³¨æãè¦ãã¾ãã ãã®ãã¿ã¼ã³ããããããªãæååã«é©ç¨ããå ´åã«ã¯ãå®è¡ã«é·ãæ éãè¦ãã¾ããæ¬¡ã®ãã¿ã¼ã³ãèãã¦ã¿ã¾ãããã (a+)* ããã¯ã33éãã®ç°ãªã£ãæ¹æ³ã§ã"aaaa"ã«ããããã¾ãããã®æ°ã¯ã æååãé·ããªãã«ã¤ãã¦æ¥æ¿ã«å¢å¤§ãã¾ãã(* å復ã¯ã0ã1ã2ã3ã 4åããããã0以å¤ã®åã ã®ã±ã¼ã¹ã§ã+å復ã¯ç°ãªã£ãåæ°åãããã ã¾ã) ãã¿ã¼ã³ã®æ®ãã«ãããå ¨ä½ã失æãããããªãã¿ã¼ã³ã§ããå ´ åãPCREã¯åºæ¬çã«å ¨ã¦ã®å¯è½æ§ããã鏿è¢ã調ã¹ããããé常ã«é· ãæéããããã¾ãã æ¬¡ã®ããã«æåãªãã©ã«ãå¾ã«ãããããªããç°¡åãªå ´åã«ã¯æé©åã å¯è½ã§ãã (a+)*b æ¨æºã®ãããæé ã«çæããåã«ãPCREã¯å¯¾è±¡æååã®å¾ã®æ¹ã«"b"ãã ããã©ããã調ã¹ã¾ããããããªãå ´åã«ã¯ãç´ã¡ã«ãããã¯å¤±æãã¾ ãããããããªãã©ã«ãå¾ã«ãªãå ´åã«ã¯ããã®æé©åã使ç¨ããã㨠ã¯ã§ãã¾ããã以ä¸ã®ãã¿ã¼ã³ã¨ä¸ã®ãã¿ã¼ã³ã®åä½ã®å·®ç°ãæ¯è¼ã㦠ã¿ã¾ãããã (a+)*\d åè ã¯ãå ¨ä½ã "a" æåã§ããè¡ã«é©ç¨ãããå ´åã«ã»ã¼ç¬éçã«å¤±æ ã¨å¤å®ãã¾ãã䏿¹ãå¾è ã§ã¯ãããã20æåããé·ãæååã§ã¯ã㪠ãã®æéããããã¾ãã </literallayout> </refsect2> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
http://cvs.php.net/diff.php/phpdoc-ja/reference/pcre/reference.xml?r1=1.3&r2=1.4&ty=u Index: phpdoc-ja/reference/pcre/reference.xml diff -u phpdoc-ja/reference/pcre/reference.xml:1.3 phpdoc-ja/reference/pcre/reference.xml:1.4 --- phpdoc-ja/reference/pcre/reference.xml:1.3 Sat Dec 14 00:51:49 2002 +++ phpdoc-ja/reference/pcre/reference.xml Sun Mar 28 01:28:03 2004 @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<!-- $Revision: 1.3 $ --> +<!-- $Revision: 1.4 $ --> +<!-- EN-Revision: 1.11 Maintainer: hirokawa Status: ready --> <reference id="ref.pcre"> <title>Perläºæã®æ£è¦è¡¨ç¾é¢æ°</title> <titleabbrev>PCRE</titleabbrev> @@ -15,6 +16,8 @@ ããå ´åã¯ãããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããå¿ è¦ãããã¾ããPHP 4.0.4以éããã¿ã¼ã³æå®ç¨ã« Perlå½¢å¼ã® (), {}, [], <> ã 使ç¨å¯è½ã§ãã + 詳細ã«ã¤ãã¦ã¯ <link linkend="pcre.pattern.syntax">ãã¿ã¼ã³æ§æ</link> + ãåç §ãã¦ä¸ããã </para> <para> ãããã³ã°ã«å½±é¿ãä¸ããæ§ã ãªä¿®é£¾åãçµç«¯ããªãã¿ã®å¾ã«ä»ãã @@ -26,6 +29,13 @@ PHPã¯ã<link linkend="ref.regex">POSIXæ¡å¼µæ£è¦è¡¨ç¾é¢æ°</link>ãç¨ ãã¦POSIXæ¡å¼µæ§æãç¨ããæ£è¦è¡¨ç¾ããµãã¼ããã¦ãã¾ãã </para> + <warning> + <para> + PCREã®ããã¤ãã®å¶éã«ã¤ãã¦ãç¥ã£ã¦ããå¿ è¦ãããã¾ãã + 詳細ã¯ã<ulink + url="&url.pcre.man;">&url.pcre.man;</ulink> ãèªãã§ä¸ããã + </para> + </warning> </section> <section id="pcre.requirements"> @@ -88,9 +98,10 @@ </example> </para> </section> - </partintro> +&reference.pcre.pattern.modifiers; +&reference.pcre.pattern.syntax; &reference.pcre.functions; </reference> http://cvs.php.net/co.php/phpdoc-ja/reference/pcre/pattern.modifiers.xml?r=1.1&p=1 Index: phpdoc-ja/reference/pcre/pattern.modifiers.xml +++ phpdoc-ja/reference/pcre/pattern.modifiers.xml <?xml version="1.0" encoding="utf-8"?> <!-- splitted from ./ja/functions/pcre.xml, last change in rev 1.1 --> <!-- sync: 1.2 --> <refentry id="pcre.pattern.modifiers"> <refnamediv> <refname>ãã¿ã¼ã³ä¿®æ£å</refname> <refpurpose>æ£è¦è¡¨ç¾ãã¿ã¼ã³ã§ä½¿ç¨å¯è½ãªä¿®é£¾åãå¾ã</refpurpose> </refnamediv> <refsect1> <title>説æ</title> <para> ç¾å¨ä½¿ç¨å¯è½ãªPCRE修飾åã®ä¸è¦§ã以ä¸ã«ç¤ºãã¾ãã æ¬å¼§ã®ä¸ã®ååã¯ããããã®ä¿®é£¾åã«é¢ããPCREå é¨ã®ååã§ãã </para> <para> <blockquote> <variablelist> <varlistentry> <term><emphasis>i</emphasis> (PCRE_CASELESS)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ããã¦ããå ´åããã¿ã¼ã³ã®ä¸ã®æå㯠大æåã«ãå°æåã«ãããããã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>m</emphasis> (PCRE_MULTILINE)</term> <listitem> <simpara> ããã©ã«ãã§ãPCREã¯æ¤ç´¢å¯¾è±¡æååã(å®éã«ã¯è¤æ°è¡ãããªã å ´åã§ã)åä¸ã®è¡ãããªãã¨ãã¦å¦çãã¾ãã "è¡é "ã¡ã¿æå (^) ã¯æååã®æåã«ããããããã¾ããã 䏿¹ã"è¡ã®çµç«¯"ã¡ã¿æå ($) ã¯æååã®çµããã¾ã㯠(<emphasis>D</emphasis> 修飾åãè¨å®ããã¦ããªãå ´åã) çµç«¯ãè¡¨ãæ¹è¡è¨å·ã®åã®ã¿ã«ããããããã¾ããã ãã®åä½ã¯ Perl ã¨åãã§ãã </simpara> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åã"è¡é "ããã³"è¡æ«"㯠subjectæååã«ããã¦ãæååã®æåã¨æå¾ã¨åãã«ã åæ¹è¡ã®ç´åã¨ç´å¾ã«ããããããããã¾ãã ãã®åä½ã¯ãPerl ã® /m 修飾åã¨åãã§ãã subject æååã®ä¸ã« "\n" æåããªãå ´åã ã¾ãã¯ãã¿ã¼ã³ã« ^ ã¾ã㯠$ ããªãå ´åã ãã®ä¿®é£¾åãè¨å®ãã¦ãæå³ã¯ããã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>s</emphasis> (PCRE_DOTALL)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åããã¿ã¼ã³ä¸ã®ãããã¡ã¿æå㯠æ¹è¡ãå«ãå ¨ã¦ã®æåã«ããããã¾ãã ãããæå®ããªãå ´åãæ¹è¡ã¯é¤ããã¾ãã ãã®ä¿®é£¾åã¯ãPerl ã® /s 修飾åã¨ç価ã§ãã [^a] ã®ãããªå¦å®ã¯ã©ã¹ã¯ã ãã®ä¿®é£¾åã®è¨å®ã«ããããå¸¸ã«æ¹è¡æåã«ããããã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>x</emphasis> (PCRE_EXTENDED)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åãã¨ã¹ã±ã¼ãããã æåã¯ã©ã¹ã®å é¨ã«ããå ´åãé¤ãã ãã¿ã¼ã³ã®ç©ºç½æåã¯å®å ¨ã«ç¡è¦ããã¾ãã ã¨ã¹ã±ã¼ãããã¦ããªãæåã¯ã©ã¹ã®å¤ã«ãã # ã¨æ¬¡ã®æ¹è¡æåã®é ã®æåãç¡è¦ããã¾ãã ãã®åä½ã¯ãPerl ã® /x 修飾åã¨åãã§ãããè¤éãªãã¿ã¼ã³ã®å é¨ã« ã³ã¡ã³ããå«ããã¨ãå¯è½ã¨ãªãã¾ãã ãããããã®ä¿®é£¾åã¯ããã¼ã¿æåã«ã®ã¿é©ç¨ããããã¨ã«æ³¨æ ãã¦ä¸ãããç©ºç½æåããã¿ã¼ã³ã®ç¹æ®æåã®ä¸¦ã³ã®ä¸ã ä¾ãã°æ¡ä»¶ä»ãµããã¿ã¼ã³(?) ã®å é¨ã«ç½®ããã¨ã¯ã§ãã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>e</emphasis></term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ããã¦ããå ´åã<function>preg_replace</function> ã¯ãç½®ææååã«ããã¦å¾æ¹åç §ã«é¢ããé常ã®ç½®æãè¡ã£ãå¾ã PHP ã³ã¼ãã¨ãã¦è©ä¾¡ããæ¤ç´¢æååãç½®æããããã«ãã®çµæã 使ç¨ãã¾ãã </simpara> <simpara> ãã®ä¿®é£¾åã使ç¨ããã®ã¯ã<function>preg_replace</function>ã®ã¿ã§ãã ä»ã® PCRE 颿°ã§ã¯ç¡è¦ããã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>A</emphasis> (PCRE_ANCHORED)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ãããå ´åããã¿ã¼ã³ã¯å¼·å¶çã«"anchored"ã¨ãªãã¾ãã ãã®å ´åãæ¤ç´¢ãããæåå("æ¤ç´¢å¯¾è±¡æåå")ã®å é ã« ã®ã¿ãããããããã«å¶éããã¾ãã ãã¿ã¼ã³èªä½ã®ä¸ã«é©å½ãªæå®ãè¡ããã¨ã§ã åæ§ã®å¹æãå¾ããã¨ãå¯è½ã§ãPerlã§ã¯ãã®æ¹æ³ããä½¿ç¨ ã§ãã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>D</emphasis> (PCRE_DOLLAR_ENDONLY)</term> <listitem> <simpara> ãã®ä¿®é£¾åãè¨å®ããã¦ããå ´åããã¿ã¼ã³å ã®ã¡ã¿è¨å·ã®ãã« ã¯ãæ¤ç´¢å¯¾è±¡æååã®çµããã«ã®ã¿ããããã¾ãã ãã®ä¿®é£¾åãæå®ããªãå ´åããã«è¨å·ã¯æ¹è¡æåã®ç´åã® æå(ãã ããæ¹è¡æå以å¤)ã«ãããããã¾ãã ãã®ä¿®é£¾åã¯ã<emphasis>m</emphasis> ãè¨å®ããã¦ããå ´åã« ç¡è¦ããã¾ãã Perlã«ã¯ããã®ä¿®é£¾åã«ç価ãªãã®ã¯ããã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>S</emphasis></term> <listitem> <simpara> ãããã¿ã¼ã³ãè¤æ°å使ç¨ããå ´åããããã³ã°ã«ãããæéã é«éåãããã¨ãç®çã¨ãã¦ããã¿ã¼ã³è§£æã«ããæéãããã 価å¤ãããã¾ãã ãã®ä¿®é£¾åãè¨å®ããå ´åããã®ãããªããæéããããè§£æã è¡ããã¾ããç¾å¨ããã¿ã¼ã³è§£æã¯ã æåã®æåãåä¸ã®åºå®ããã¦ããªãã¢ã³ã«ã¼ä»ãã§ãªããã¿ã¼ã³ã§ã®ã¿ æç¨ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>U</emphasis> (PCRE_UNGREEDY)</term> <listitem> <simpara> ãã®ä¿®é£¾åã¯ãããã©ã«ãã§è²ªæ¬²ã§ãªããã"?" ãå¾ã«ä»ãã¨è²ªæ¬² ã«ãªãéååå¨ã®åä½ãå転ãã¾ãããã®ä¿®é£¾åã¯Perläºæã§ã¯æ ãã¾ããããã®ä¿®é£¾åã®æå®ã¯ã(?U) 修飾åã®ããã«ãã¿ã¼ã³å ã§ãè¡ããã¨ãã§ãã¾ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>X</emphasis> (PCRE_EXTRA)</term> <listitem> <simpara> ãã®ä¿®é£¾åã¯ãPerl ã¨äºææ§ããªã PCRE ã®ä»å çãªæ©è½ããªã³ã«ãã¾ãã ãã¿ã¼ã³å ã§å¾ãã«æåãç¶ãããã¯ã¹ã©ãã·ã¥ã§ç¹å¥ãªæå³ããªã ãã®ã¯ãå°æ¥çãªæ¡å¼µã®éã®äºææ§ã®ç¶æã®ãããã¨ã©ã¼ã«ãªãã¾ãã ããã©ã«ãã§ã¯ãPerl ã®ããã«æåãå¾ãã«ç¶ãããã¯ã¹ã©ãã·ã¥ ã§ç¹ã«æå³ããªããã®ã¯ããªãã©ã«ã¨ãã¦å¦çããã¾ãã ãã®ä¿®é£¾åã«ããå¶å¾¡ãããæ©è½ã¯ãç¾å¨ä»ã«ããã¾ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>u</emphasis> (PCRE_UTF8)</term> <listitem> <simpara> ãã®ä¿®æ£åã¯ãPerléäºæãªPCREã®æ©è½ãæå¹ã«ãã¾ãããã¿ã¼ã³ æååã¯ãUTF-8ã¨ã³ã³ã¼ããããæååã¨ãã¦å¦çããã¾ããã ã®ä¿®æ£åã¯ãUNIXã§ã¯PHP 4.1.0以éãWin32ã§ã¯PHP 4.2.3以é㧠使ç¨å¯è½ã§ãã </simpara> </listitem> </varlistentry> </variablelist> </blockquote> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 --> http://cvs.php.net/co.php/phpdoc-ja/reference/pcre/pattern.syntax.xml?r=1.1&p=1 Index: phpdoc-ja/reference/pcre/pattern.syntax.xml +++ phpdoc-ja/reference/pcre/pattern.syntax.xml <?xml version="1.0" encoding="utf-8"?> <!-- splitted from ./ja/functions/pcre.xml, last change in rev 1.1 --> <!-- sync: 1.2 --> <refentry id="pcre.pattern.syntax"> <refnamediv> <refname>ãã¿ã¼ã³æ§æ</refname> <refpurpose>PCRE æ£è¦è¡¨ç¾ã®èª¬æ</refpurpose> </refnamediv> <refsect1> <title>説æ</title> <literallayout> PCRE ã©ã¤ãã©ãªã¯ã(以ä¸ã«ç¤ºã)å ããªéããé¤ã Perl 5 ã¨åãæ§æã¨ æå³ã使ç¨ããæ£è¦è¡¨ç¾ãã¿ã¼ã³ãããã³ã°ãå®è£ ãã颿°ç¾¤ã§ãã ç¾å¨ã®å®è£ ã¯ãPerl 5.005 ã«å¯¾å¿ãã¦ãã¾ãã </literallayout> </refsect1> <refsect1> <title>Perlã¨ã®å·®ç°</title> <para> ããã§èª¬æããã®ã¯ãPerl 5.005 ã«é¢é£ãããã®ã§ãã <orderedlist> <listitem> <simpara> ããã©ã«ãã§ã¯ç©ºç½æå㯠C ã©ã¤ãã©ãªé¢æ° isspace() ãèªèãã å ¨ã¦ã®æåã§ãããå¥ã®æååãã¼ãã«ãç¨ãã¦PCREãã³ã³ãã¤ã«ã ããã¨ãå¯è½ã§ããé常ãisspace() ã¯ç©ºç½ããã©ã¼ã ãã£ã¼ããæ¹ è¡ãè¤æ¹ãæ°´å¹³ã¿ããåç´ã¿ãã«ããããã¾ããPerl 5 ã§ã¯ããç©ºç½ æåã®ä¸ã«åç´ã¿ããå«ãã§ãã¾ãããããªãåãã Perl ããã¥ã¡ ã³ãã«ãã£ã \v ã¨ã¹ã±ã¼ãã¯ãå®éã¯èªèããã¦ãã¾ããã§ããã ãããããã®æåèªä½ã¯å°ãªãã¨ã 5.002 ã¾ã§ã¯ç©ºç½æåã¨ãã¦å¦ç ããã¦ãã¾ãã5.004 ããã³ 5.005 ã§ã¯ããã®æå㯠\s ã«ãããã ã¾ããã </simpara> </listitem> <listitem> <simpara> PCREã§ã¯ãå èªã¿è¨æ(assertion)æã«ç¹°ãè¿ãæ°ã®æå®ã使ç¨ã§ãã¾ ãããPerlã¯ããã許å¯ãã¾ãããæå³ããéãã«åä½ãããã¨ãæ å³ããããã§ã¯ããã¾ãããä¾ãã°ã(?!a){3} ã¯ã次ã®3æåã "a" ã§ãªããã¨ãè¨æããããã§ã¯ããã¾ããããã®æå®ã¯ãæ¬¡ã®æåã "a" ã§ã¯ãªããã¨ã3åè¨æããã ãã§ãã </simpara> </listitem> <listitem> <simpara> å¦å®ã®å èªã¿è¨æã®ä¸ã§çãããµããã¿ã¼ã³ãåå¾ããåæ°ã¯è¨ç®ã ãã¾ããããªãã»ãããã¯ãã«ã®ä¸ã®å¯¾å¿ããã¨ã³ããªã¯è¨å®ããã¾ ãããPerlã§ã¯ãè¨æã®ãããã³ã°ã«å¤±æããåã«ããããããã¿ã¼ ã³ãããã®å¤æ°ãè¨å®ãã¾ããããããè¡ãããã®ã¯ãå¦å®ã®å èªã¿ è¨æã®æã1ã¤ã ãã®å ´åã®ã¿ã§ãã </simpara> </listitem> <listitem> <simpara> ãã«æåæåã¯ãæ¤ç´¢å¯¾è±¡æååã§ãµãã¼ãããã¾ããããã¿ã¼ã³æ ååã§ã¯ãµãã¼ãããã¾ãããããã¯ããã¿ã¼ã³æååã¯ã0ãçµç«¯ã¨ ããé常ã®Cæååã¨ãã¦æ¸¡ãããããã§ããã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ "\0"ã¯ããã«æåã表ããã¿ã¼ã³ã¨ãã¦ä½¿ç¨ãããã¨ãå¯è½ã§ãã </simpara> </listitem> <listitem> <simpara> 次ã®Perlã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã¯ããµãã¼ãããã¾ããã: \l, \u, \L, \U, \E, \Q å®éãPerlã§ã¯ããããã¯ãã¿ã¼ã³ãããã³ã°ã¨ã³ ã¸ã³ã®é¨åã§ã¯ãªããéå¸¸ã®æååå¦çã®é¨åã«å®è¨¼ããã¦ãã¾ãã </simpara> </listitem> <listitem> <simpara> Perlã®\Gè¨æã¯ãä¸åã®ãã¿ã¼ã³ãããã«é¢ãããã®ã§ã¯ãªãããã ãµãã¼ãããã¾ããã </simpara> </listitem> <listitem> <simpara> æç¢ºã«è¿°ã¹ãã¨ãPCREã¯(?{code})æ§é ããµãã¼ããã¾ããã </simpara> </listitem> <listitem> <simpara> Perl 5.005_02ã§ã¯ãæ¸ããã¿æã«ãã¿ã¼ã³ã®ä¸é¨ãç¹°ãè¿ãéã«åå¾ ããæååã®è¨å®ã«é¢é£ããå¥å¦ãªåä½ãè¦ããããã¾ããä¾ãã°ã "aba"ããã¿ã¼ã³/^(a(b)?)+$/ã«ãããã³ã°ããå ´åã$2ã«ã¯ãå¤"b" ãè¨å®ããã¾ããã"aabbaa"ã/^(aa(bb)?)+$/ã«ããããããå ´åã $2ã¯è¨å®ããã¾ããããããããã¿ã¼ã³ã/^(aa(b(b))?)+$/ã«å¤ãã ã¨ã$2 (ããã³ $3)ãè¨å®ããã¾ããPerl 5.004ã§ã¯ã$2 ã¯ã©ã¡ãã® ã±ã¼ã¹ã§ãè¨å®ããã¾ãPCREã§ã&true;ã«è¨å®ããã¾ããå°æ¥çã« Perlãå¥ã®çç¾ã®ãªãç¶æ ã«å¤æ´ãããå ´åãPCREã追å¾ããå¯è½æ§ ãããã¾ãã </simpara> </listitem> <listitem> <simpara> ä»ã®æªè§£æ±ºã®çç¾ã¯ãPerl 5.005_02 ã§ã¯ããã¿ã¼ã³ /^(a)?(?(1)a|b)+$/ ã¯æåå "a" ã«ããããã¾ãããPCRE ã§ã¯ãã ãããªãã¨ãããã¨ã§ããããããPerl 㨠PCRE ã¯å ±ã« /^(a)?a/ ã§ "a" ããããããå ´åã« $1 ãæªå®ç¾©ã®ã¾ã¾ã¨ãªãã¾ãã </simpara> </listitem> <listitem> <para> PCREã¯ãPerlæ£è¦è¡¨ç¾ã®æ©è½ã«ããã¤ãã®æ¡å¼µæ©è½ãæä¾ãã¾ãã <orderedlist> <listitem> <simpara> å èªã¿è¨æã¯ãåºå®é·ã®æååã«ãããããå¿ è¦ãããã¾ãããå èªã¿è¨æã®å¥ã®åæã¯ãç°ãªã£ãé·ãã®æååã«ããããããã¨ã ã§ãã¾ããPerl 5.005 ã§ã¯å ¨ã¦åãé·ãã§ããå¿ è¦ãããã¾ãã </simpara> </listitem> <listitem> <simpara> <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link>ã è¨å®ããã¦ããã<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãè¨å® ããã¦ããªãå ´åãã¡ã¿æå$ã¯ãæååã®çµç«¯ã«ã®ã¿ããããã¾ãã </simpara> </listitem> <listitem> <simpara> <link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link>ãè¨ å®ããã¦ããå ´åãããã¯ã¹ã©ãã·ã¥ã®å¾ã«æåããã£ã¦ç¹ã«æå³ ããªããã®ã¯ãã¨ã©ã¼ã¨ãªãã¾ãã </simpara> </listitem> <listitem> <simpara> <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link>ã è¨å®ããã¦ããå ´åãããã©ã«ãã§ã¯è²ªæ¬²ã§ãªãç¹°ãè¿ãæå®å㮠貪欲ãã¯å転ãã¾ãããçå符ãå¾ãã«ã¤ãå ´åã¯ã貪欲ã«ãªãã¾ãã </simpara> </listitem> </orderedlist> </para> </listitem> </orderedlist> </para> </refsect1> <refsect1 id="regexp.reference"> <title>æ£è¦è¡¨ç¾ã®è©³ç´°</title> <refsect2 id="regexp.introduction"> <title>å°å ¥</title> <para> PCREã«ãããµãã¼ããããæ£è¦è¡¨ç¾ã®æ§æã以ä¸ã«ç¤ºãã¾ãã æ£è¦è¡¨ç¾ã¯ãPerlã®ããã¥ã¡ã³ããä»ã®å¤ãã®æ¸ç±ã«ãã㦠è±å¯ãªä¾ã¨å ±ã«èª¬æããã¦ãã¾ãã Jeffrey Friedl ãæ¸ãã O'Reilly çºåã® "Mastering Regular Expressions" ã«ã¯ã詳細ã示ããã¦ãã¾ãã ããã§ã®èª¬æã¯ãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ãã¨ãã¦ä½¿ç¨ãããã¨ã æå³ãã¦ãã¾ãã æ£è¦è¡¨ç¾ã¯ãã¿ã¼ã³ã§ãããæ¤ç´¢å¯¾è±¡æååã«å¯¾ãã¦å·¦ããå³ã«ãããã³ã°ã è¡ããã¾ãã ãã¿ã¼ã³ã®ä¸ã®å¤ãã®æåã¯ããèªä½ã表ããæ¤ç´¢å¯¾è±¡ã®å¯¾å¿ããæåã« ããããã¾ããç°¡åãªä¾ããããã¨ããã¿ã¼ã³ <literal>The quick brown fox</literal> ã¯ãæ¤ç´¢å¯¾è±¡æååã®ããèªä½ã¨åãé¨åã«ããããã¾ãã </para> </refsect2> <refsect2 id="regexp.reference.meta"> <title>ã¡ã¿æå</title> <para> æ£è¦è¡¨ç¾ã®å¼·åãã¯ããã¿ã¼ã³ä¸ã«è¤æ°ã®é¸æè¢ãç¹°ãè¿ããå«ãè½å ã«ãããã®ã§ãããããã¯ã<emphasis>ã¡ã¿</emphasis>-<emphasis>æ å</emphasis>ã使ç¨ãããã¿ã¼ã³ã«ããã¨ã³ã³ã¼ãããã¾ãã ã¡ã¿æåã¯ããèªä½ã表ãã¾ãããã代ããã«ç¹æã®è§£éãè¡ããã¾ãã </para> <para> 2種é¡ã®ã¡ã¿æåãåå¨ãã¾ããçæ¹ã¯ããã©ã±ããã®ä¸ä»¥å¤ã«ãããã¿ã¼ã³ ã§ä½¿ç¨å¯è½ãªãã®ã§ãããçæ¹ã¯ããã©ã±ããã®ä¸ã§ä½¿ç¨å¯è½ãªãã®ã§ãã ãã©ã±ããã®å¤ã§ä½¿ç¨ãããã¡ã¿æåã«ã¯æ¬¡ã®ãããªãã®ãããã¾ãã <variablelist> <varlistentry> <term><emphasis>\</emphasis></term> <listitem> <simpara> ä¸è¬çãªã¨ã¹ã±ã¼ãæå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>^</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡(è¤æ°è¡ã¢ã¼ãã§ã¯è¡)ã®å§ã¾ããè¨æ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>$</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡(è¤æ°è¡ã¢ã¼ãã§ã¯è¡)ã®çµãããè¨æ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>.</emphasis></term> <listitem> <simpara> (ããã©ã«ãã§ã¯)æ¹è¡ãé¤ãå ¨ã¦ã®æåã«ããã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>[</emphasis></term> <listitem> <simpara> æåã¯ã©ã¹éå§ãå®ç¾© </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>]</emphasis></term> <listitem> <simpara> æåã¯ã©ã¹ã®çµäº </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>|</emphasis></term> <listitem> <simpara> 鏿æã®éå§ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>(</emphasis></term> <listitem> <simpara> ãµããã¿ã¼ã³ã®éå§ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>)</emphasis></term> <listitem> <simpara> ãµããã¿ã¼ã³ã®çµäº </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>?</emphasis></term> <listitem> <simpara> ( ã®æå³ãæ¡å¼µããã¾ãã¯ã0 ã¾ãã¯1 åã®ç¹°ãè¿ãã¾ãã¯ãç¹°ã è¿ããæå°åãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>*</emphasis></term> <listitem> <simpara> 0以ä¸ã®ç¹°ãè¿ã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>+</emphasis></term> <listitem> <simpara> 1以ä¸ã®ç¹°ãè¿ã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>{</emphasis></term> <listitem> <simpara> æå°/æå¤§ç¹°ãè¿ãã®éå§ </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>}</emphasis></term> <listitem> <simpara> æå°/æå¤§ç¹°ãè¿ãã®çµäº </simpara> </listitem> </varlistentry> </variablelist> ãã¿ã¼ã³ä¸ã§ãã©ã±ããã®ä¸ã®é¨åã¯ã"æåã¯ã©ã¹" ã¨å¼ã°ãã¾ãã æåã¯ã©ã¹ã§ä½¿ããã¡ã¿æåã¯æ¬¡ã®ãã®ã ãã§ãã <variablelist> <varlistentry> <term><emphasis>\</emphasis></term> <listitem> <simpara> ä¸è¬çãªã¨ã¹ã±ã¼ãæå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>^</emphasis></term> <listitem> <simpara> æåã®æåã«ç¨ããå ´åã®ã¿ãã¯ã©ã¹ãå¦å® </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>-</emphasis></term> <listitem> <simpara> æåã®ç¯å²ã示ã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>]</emphasis></term> <listitem> <simpara> æåã¯ã©ã¹ãçµäºãã </simpara> </listitem> </varlistentry> </variablelist> 次ã®ã»ã¯ã·ã§ã³ã§ãåã¡ã¿æåã®ä½¿ç¨æ³ã®èª¬æãè¡ãã¾ãã </para> </refsect2> <refsect2 id="regexp.reference.backslash"> <title>ããã¯ã¹ã©ãã·ã¥</title> <para> ããã¯ã¹ã©ãã·ã¥ã«ã¯ãããã¤ãã®ä½¿ç¨æ³ãããã¾ããã¾ãã è±åã§ãªãæåãå¾ã«ç¶ãå ´åããã¦?åãæãã ç¹å¥ãªæå³ã¯å¤±ããã¾ãããã®ããã¯ã¹ã©ãã·ã¥ã®ä½¿ãæ¹ã¯ã æåã¯ã©ã¹ã®å å´ã¨å¤å´ã®ä¸¡æ¹ã§ä½¿ç¨å¯è½ã§ãã </para> <para> ä¾ãã°ã"*" æåã«ãããããããå ´åããã¿ã¼ã³ã« "\*" ãæ¸ãã¾ãã ããã«ãããæ¬¡ã®æåãã¡ã¿æåã¨ãã¦è§£éããããã¨ããã¾ãã¨ã "\" ãä¼´ã£ãè±åã§ãªãæåãããã®æåèªä½ã表ããã¨ãä¿è¨¼ãã¾ãã ç¹ã«ãããã¯ã¹ã©ãã·ã¥ã«ãããããããå ´åã¯ã"\\" ã¨æ¸ãã¾ãã </para> <para> ãã¿ã¼ã³ãã PCRE_EXTENDED ãªãã·ã§ã³ãä»ãã¦ã³ã³ãã¤ã«ããã¦ãã å ´åã(æåã¯ã©ã¹ã®ä¸ã§ãªã)ãã¿ã¼ã³å ã®ç©ºç½æåããã³ "#" ã¨æ¬¡ã®æ¹è¡æåã®éã®æåã¯ç¡è¦ããã¾ãã ç©ºç½æåã¾ã㯠"#" ããã¿ã¼ã³ã®ä¸é¨ã¨ãã¦å«ããéã«ã¯ã ããã¯ã¹ã©ãã·ã¥ã«ããã¨ã¹ã±ã¼ããããã¨ãã§ãã¾ãã </para> <para> ããã¯ã¹ã©ãã·ã¥ã®2çªç®ã®ä½¿ç¨æ³ã¯ãåºåãããªãæåã ãã¿ã¼ã³å ã«ç®ã«è¦ããå½¢ã§ã¨ã³ã³ã¼ãããææ³ãæä¾ãããã®ã§ãã ãã¿ã¼ã³ãçµäºããããã«æåãé¤ããåºåãããªãæåã®è¦ãæ¹ã« ã¯ä½ã®å¶ç´ãããã¾ãããããã¿ã¼ã³ãããã¹ãç·¨éããéã«ã¯ãé常 次ã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãç¨ããæ¹ããå ã®ãã¤ããªæåããã ããç°¡åã§ãããã </para> <para> <variablelist> <varlistentry> <term><emphasis>\a</emphasis></term> <listitem> <simpara> ã¢ã©ã¼ã ããã«æå (16é² 07) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\cx</emphasis></term> <listitem> <simpara> "control-x", ãã ã x ã¯ããããæå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\e</emphasis></term> <listitem> <simpara> ã¨ã¹ã±ã¼ã (16é² 1B) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\f</emphasis></term> <listitem> <simpara> æ¹ãã¼ã¸ (16é² 0C) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\n</emphasis></term> <listitem> <simpara> æ¹è¡ (16é² 0A) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\r</emphasis></term> <listitem> <simpara> 復帰 (16é² 0D) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\t</emphasis></term> <listitem> <simpara> ã¿ã (16é² 09) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\xhh</emphasis></term> <listitem> <simpara> 16鲿°ã§ hh ã®æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\ddd</emphasis></term> <listitem> <simpara> 8鲿°ã§ ddd ã®æåã¾ãã¯å¾æ¹åç § </simpara> </listitem> </varlistentry> </variablelist> </para> <para> "\cx" ã®æ£ç¢ºãªå¹æã¯ã次ã®ããã«ãªãã¾ãã"x" ãå°æåã®å ´åã 大æåã«å¤æããã¾ããç¶ãã¦ãæåã®6ãããç®(16鲿° 40)ã å転ããã¾ããã¤ã¾ãã"\cz" ã¯16鲿°ã® 1A ã«ãªãã¾ããã"\c{" ã¯16鲿°ã® 3B ã«ãªãã"\c;" 㯠16鲿°ã® 7B ã«ãªãã¾ãã </para> <para> "\x" ã®å¾ã§ã¯ã2æ¡ã®16鲿°ãèªã¾ãã¾ãã(表ãæåã¯ã大æåã§ã å°æåã§ãå¯ã§ã)"\0"ã§ã¯2æ¡ã¾ã§ã®8鲿°ãèªã¿ãã¾ãã¾ãã 両æ¹ã®ã±ã¼ã¹ã¨ãã2æ¡ããå°ãªãå ´åã表ãã¦ããæåèªä½ã 使ç¨ããã¾ããã¤ã¾ãã"\0\x\07" ã¯2ã¤ã®ãã«æåã®å¾ã«ãã«æå ãç¶ãããã®ã表ãã¾ãã8鲿°ã表ãæåã«ã¤ãã¦ã¯ãæåã®ã¼ã ã®å¾ã«2æ¡ã®æ°åãæå®ããããã«æ³¨æãã¦ä¸ããã </para> <para> ããã¯ã¹ã©ãã·ã¥ã®å¾ã«0以å¤ã®æ°åãç¶ãå ´åã®å¦çã¯ãè¤éã§ãã æåã¯ã©ã¹ã®å¤ã§ã¯ãPCRE ã¯ç¶ãæ¡ã10鲿°ã¨ãã¦èªã¿ãã¿ã¾ãã æ°åã10ãããå°ããå ´åãã¾ãã¯ãå¼ã®ä¸ã«å¤ãåå¾ããå·¦æ¬å¼§ã ãã®æ°ä»¥ä¸ãã£ãå ´åãå ¨ä½ã®ã·ã¼ã±ã³ã¹ã¯ã<emphasis>徿¹</emphasis> <emphasis>åç §</emphasis>ã¨ãã¦è§£éããã¾ãããã®åä½ã«é¢ãã説æ ã¯ãæ¬å¼§ä»ãã®ãµããã¿ã¼ã³ã®èª¬æã®å¾ã«è¡ãã¾ãã </para> <para> æåã¯ã©ã¹ã®ä¸ã¾ãã¯10鲿°ã9ãã大ãããåå¾ãè¡ã£ããµããã¿ã¼ã³ ããã®æ°ã«æºããªãå ´åãPCRE ã¯ããã¯ã¹ã©ãã·ã¥ã®å¾ããæå¤§3æåã®8鲿° ãå度èªã¿ãã¿ããã®å¤ã®æä¸ä½ 8ããããã1ãã¤ããçæãã¾ãã ç¶ãæ¡ã¯ããèªä½ã表ãã¾ããä¾ãã°ã </para> <para> <variablelist> <varlistentry> <term><emphasis>\040</emphasis></term> <listitem> <simpara> ã¯ç©ºç½ã®å¥ã®è¡¨è¨æ³ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\40</emphasis></term> <listitem> <simpara> ã¯ãåãæå³ã§ãããã ããå¤ãå徿¸ã¿ã®ãµããã¿ã¼ã³ã40åæª æºã®å ´åã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\7</emphasis></term> <listitem> <simpara> ã¯å¸¸ã«å¾æ¹åç §ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\11</emphasis></term> <listitem> <simpara> ã¯å¾æ¹åç §ã¾ãã¯ã¿ãã®å¥ã®è¡¨è¨æ³ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\011</emphasis></term> <listitem> <simpara> ã¯å¸¸ã«ã¿ãã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\0113</emphasis></term> <listitem> <simpara> ã¯ã¿ãã®å¾ã«æå "3" ãç¶ãããã®ã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\113</emphasis></term> <listitem> <simpara> (99 ãè¶ ãã徿¹åç §ã¯ãªãã®ã§) 8鲿° 113 ã表ãæåã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\377</emphasis></term> <listitem> <simpara> ã¯1ãããã®ä¸¦ã³ã§æ§æããã1ãã¤ãã§ãã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\81</emphasis></term> <listitem> <simpara> ã¯å¾æ¹åç §ã¾ãã¯ããã«æåã®å¾ã«2ã¤ã®æå "8" ããã³ "1" ã ç¶ãããã®ã§ãã </simpara> </listitem> </varlistentry> </variablelist> </para> <para> 3æ¡ãè¶ ãã¦8鲿°ã¯èªã¿ãã¾ããªããããå¤ã100以ä¸ã®8鲿°ã«ã¯ ã¼ããåã«ã¤ããã¹ãã§ã¯ãªããã¨ã«æ³¨æãã¦ãã ããã </para> <para> 1ãã¤ãã®å¤ãå®ç¾©ããããããã·ã¼ã±ã³ã¹ã¯ãæåã¯ã©ã¹ã®å é¨ ããã³å¤é¨ã§ä½¿ç¨å¯è½ã§ããå ãã¦ãæåã¯ã©ã¹ã®å é¨ã§ã¯ã·ã¼ã±ã³ã¹ "\b" ã¯ããã¯ã¹ãã¼ã¹(16é² 0x)ã¨ãã¦è§£éããã¾ãã æåã¯ã©ã¹ã®å¤ã§ã¯ãå¥ã®æå³ãæãã¾ãã(以ä¸ãåç §ä¸ãã) </para> <para> ããã¯ã¹ã©ãã·ã¥ã®ç¬¬3ã®ä½¿ç¨æ³ã¯ãå æ¬çãªæååãæå®ããç¨é ã§ãã </para> <para> <variablelist> <varlistentry> <term><emphasis>\d</emphasis></term> <listitem> <simpara> 10鲿°å </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\D</emphasis></term> <listitem> <simpara> 10鲿°åã§ãªãå ¨ã¦ã®æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\s</emphasis></term> <listitem> <simpara> ç©ºç½æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\S</emphasis></term> <listitem> <simpara> ç©ºç½æå以å¤ã®æå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\w</emphasis></term> <listitem> <simpara> åèªæ§ææå </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\W</emphasis></term> <listitem> <simpara> åèªæ§ææåä»¥å¤ </simpara> </listitem> </varlistentry> </variablelist> </para> <para> ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã®åçµã¯ãå ¨æåã®éåã2ã¤ã®éåã« åå²ãã¾ããå ¨ã¦ã®æåã¯ãåçµã®ãã¡ãçæ¹ã ?kããããã¾ãã </para> <para> åèªæ§ææåã¨ã¯è±åã¾ãã¯æ°åã¾ãã¯ã¢ã³ãã¼ã¹ã³ã¢æåã§ããã Perl ã® "åèª" ã¨æãå¾ãæåã®ãã¨ã§ãã æåããã³æ°åã®å®ç¾©ã¯ãPCRE ã®æåãã¼ãã«ã«ããå¶å¾¡ããã ãã±ã¼ã«ãæå®ããããããè¡ã£ãå ´åã«ã¯å¤ããå¯è½æ§ãããã¾ãã ("ãã±ã¼ã«ã®ãµãã¼ã"ãåç §ä¸ãã) ä¾ãã°ã"fr" (ãã©ã³ã¹èª)ãã±ã¼ã«ã®å ´åãããã¤ãã®128ãè¶ ãã æåã³ã¼ãã®æåã¯ãã¢ã¯ã»ã³ãä»ãã®æåã«ä½¿ç¨ããã¦ããã ããã㯠\w ã«ããããã¾ãã </para> <para> ãããã®æååã·ã¼ã±ã³ã¹ã¯ãæåã¯ã©ã¹ã®å å¤ã«ããã使ç¨å¯è½ ã§ãããããã¯ãé©å½ãªåã®1æåã«ããããã¾ããç¾å¨ãããã³ã° ãè¡ã£ã¦ããä½ç½®ãæ¤ç´¢å¯¾è±¡æååã®çµç«¯ã§ããå ´åããããã§ãã æåã¯ãªãã®ã§å ¨ã¦ã®ãããã³ã°ã¯å¤±æãã¾ãã </para> <para> ããã¯ã¹ã©ãã·ã¥ã®ç¬¬4ã®ä½¿ç¨æ³ã¯ãåç´ãªè¨æã§ãã è¨æã¯ãæ¤ç´¢å¯¾è±¡æååããæåãå ¨ãæãåºããã« ããããç¹å®ã®ä½ç½®ã§çããã¨ããæææ¡ä»¶ãæå®ãã¾ãã ããè¤éãªè¨æã«é¢ãããµããã¿ã¼ã³ã®ä½¿ç¨æ³ã以ä¸ã«èª¬æãã¾ãã ããã¯ã¹ã©ãã·ã¥ä»ãã®è¨æã¯æ¬¡ã®ãã®ãããã¾ãã </para> <para> <variablelist> <varlistentry> <term><emphasis>\b</emphasis></term> <listitem> <simpara> åèªã®å¢ç </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\B</emphasis></term> <listitem> <simpara> åèªã®å¢çã§ãªã </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\A</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡ã®å§ã¾ã (è¤æ°è¡ã¢ã¼ãã¨ã¯ç¬ç«) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\Z</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡ã®çµããã¾ãã¯çµç«¯ã®æ¹è¡ (è¤æ°è¡ã¢ã¼ãã¨ã¯ç¬ç«) </simpara> </listitem> </varlistentry> <varlistentry> <term><emphasis>\z</emphasis></term> <listitem> <simpara> æ¤ç´¢å¯¾è±¡ã®çµãã (è¤æ°è¡ã¢ã¼ãã¨ã¯ç¬ç«) </simpara> </listitem> </varlistentry> </variablelist> </para> <para> ãããã®è¨æã¯ãæåã¯ã©ã¹ã«ã¯ä½¿ç¨ã§ãã¾ããã(ããããæåã¯ã©ã¹ã® ä¸ã§ã¯ã"<literal>\b</literal>" ã«ã¯å¥ã®æå³ãã¤ã¾ããããã¯ã¹ãã¼ ã¹æåã¨ããæå³ããããã¨ã«æ³¨æãã¦ãã ãã) </para> <para> åèªã®å¢çã¯ãæ¤ç´¢å¯¾è±¡æååã«ããã¦ãç¾å¨ã®æåããã³åã®æåã 両æ¹ã¯<literal>\w</literal>ã¾ãã¯<literal>\W</literal>ã«ãããã ãªã(ããªãã¡ãçæ¹ã¯<literal>\w</literal>ã«ããããã¦ãããçæ¹ ã¯<literal>\W</literal>ã«ããããã)ããã¾ãã¯ãæåã®ã¾ãã¯æå¾ ã®æåã<literal>\w</literal>ã«ããããããªãã°ããããããæå åã®å§ãã¾ãã¯çµããã®ä½ç½®ã§ãã </para> <para> è¨æ<literal>\A</literal>, <literal>\Z</literal>, <literal>\z</literal>ã¯ã(以ä¸ã«èª¬æãã)ã©ããªãªãã·ã§ã³ãè¨å® ãã¦ãæååã®å§ç«¯ããã³çµç«¯ã«ã®ã¿ããããããããè¨å·ããã³ãã« è¨å·ã¨ã¯ç°ãªã£ã¦ãã¾ãã ãããã®è¨æã¯ã<link linkend="pcre.pattern.modifiers">PCRE_NOTBOL</link>ã¾ãã¯<link linkend="pcre.pattern.modifiers">PCRE_NOTEOL</link>ãªãã·ã§ã³ã® å½±é¿ãåãã¾ããã<literal>\Z</literal>åã³<literal>\z</literal> ã®éãã¯ã<literal>\Z</literal>ã¯ãæååã®çµç«¯ã¨åæã«æååã® æå¾ã®æåãæ¹è¡ã®å ´åã«åã®æåã«ãããããã®ã«å¯¾ãã <literal>\z</literal>ã¯çµç«¯ã«ã®ã¿ããããã¾ãã </para> </refsect2> <refsect2 id="regexp.reference.circudollar"> <title>ãããè¨å·åã³ãã«è¨å·</title> <literallayout> æåã¯ã©ã¹ã®å¤å´ã®å ´åãããã©ã«ãã®ãããã¢ã¼ãã§ã¯ããããè¨å·ã¯ ç¾å¨ãããã³ã°ãè¡ã£ã¦ããä½ç½®ã対象æååã®å§ç«¯ã§ããå ´åã«ã®ã¿ &true;ã¨ãªãè¨æã§ãã æåã¯ã©ã¹ã®å é¨ã§ã¯ããããè¨å·ã¯å ¨ãå¥ã®æå³ã¨ãªãã¾ãã (以ä¸ãåç §) è¤æ°ã®é¸æè¢ãããå ´åã ãããè¨å·ã¯ãã¿ã¼ã³ã®æåã®æåã§ããå¿ è¦ã¯ããã¾ããã ãããããã¿ã¼ã³ããã®æã«ãããããªãå ´åã å鏿è¢ã®å é ã«ç½®ãå¿ è¦ãããã¾ãã å ¨ã¦ã®é¸æè¢ããããè¨å·ã§å§ã¾ãå ´åããã¿ã¼ã³ã¯å¯¾è±¡ã®æåã«ã®ã¿ ãããããããã«ææããã¦ã£?å ´åã§ããã"ã¢ã³ã«ã¼ä»ã" ãã¿ã¼ã³ã¨ å¼ã°ãã¾ãã (ä»ã®æåããã¿ã¼ã³ãã¢ã³ã«ã¼ä»ãã«ãããã¨ãå¯è½ã§ã) ãã«è¨å·ã¯ã(ããã©ã«ãã§ã¯)ç¾å¨ã®ãããã³ã°ç¹ã対象æååã® çµç«¯ã«ããããæååã®æå¾ã®æåãæ¹è¡æåã§ããå ´åã« ãã®ç´åã«ããå ´åã®ã¿ &true; ã¨ãªãè¨æã§ãã ãã«è¨å·ã¯ãè¤æ°ã®é¸æè¢ãããå ´åããã¿ã¼ã³ã®æå¾ã®æåã§ã ãå¿ è¦ã¯ããã¾ãããã使ç¨ã??æã®æå¾ã®ã¢ã¤ãã ã§ããå¿ è¦ ãããã¾ãããã«è¨å·ã¯ãæåã¯ã©ã¹ã®ä¸ã§ã¯ç¹å¥ãªæå³ãæãã¾ ããã ãã«è¨å·ã®æå³ã¯ãã³ã³ãã¤ã«æã¾ãã¯ãããã³ã°æã® <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> ãªãã·ã§ã³ã®è¨å®ã«ããæååã®çµç«¯ã«ã®ã¿ãããããããã«å¤æ´ãã ãã¨ãå¯è½ã§ãããã®è¨å®ã¯ã\Z è¨æã«ã¯å½±é¿ãä¸ãã¾ããã ãããè¨å·ã¨ãã«è¨å·ã®æå³ã¯ã<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãªãã·ã§ã³ ãè¨å®ããå ´åã«å¤åãã¾ãããããè¨å®ããå ´åã対象æååã®å§ç«¯ åã³çµç«¯ã«ãããããã®ã«å ãã¦ãæååå é¨ã® "\n" æåã®ç´å åã³ç´å¾ã«ããããããããã¾ããä¾ãã°ããã¿ã¼ã³ /^abc$/ ã¯ è¤æ°è¡ã¢ã¼ãã§ã¯å¯¾è±¡æåå "def\nabc" ã«ããããã¾ããã ããã§ãªãå ´åã¯ããããã¾ãããçµæã¨ãã¦ã å ¨ã¦ã®æã "^" ã§å§ã¾ããããåä¸è¡ã¢ã¼ãã§ã¢ã³ã«ã¼ä»ãã®ãã¿ ã¼ã³ã¯ãè¤æ°è¡ã¢ã¼ãã§ã¯ã¢ã³ã«ã¼ç¡ãã¨ãªãã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> ãªãã·ã§ã³ã¯ã<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãè¨å®ãã ã¦ããå ´åã¯ç¡è¦ããã¾ãã 両æ¹ã®ã¢ã¼ãã§å¯¾è±¡ã®å§ç«¯ããã³çµç«¯ã«ããããããããã« ã·ã¼ã±ã³ã¹ \A, \Z, \z ã使ç¨åºæ¥ããã¨ã«æ³¨æãã¦ãã ããã ãã¿ã¼ã³ã®æã \A ãä»ãã¦å§ã¾ãå ´åã <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ã®è¨ å®ã«ãããã常ã«ã¢ã³ã«ã¼ä»ãã¨ãªãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.dot"> <title>çµæ¢ç¬¦</title> <literallayout> æåã¯ã©ã¹ã®å¤å´ã§ã¯ããã¿ã¼ã³ã®ä¸ã®ãããã¯éåºåæåãå«ã (ããã©ã«ãã§ã¯)æ¹è¡ä»¥å¤ã®å¯¾è±¡ã®å ¨ã¦ã®1æåã«ããããã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãªãã·ã§ ã³ãè¨å®ããå ´åããããã¯æ¹è¡ã«ãããããã¾ãããããã®å¦çã¯ã ãããè¨å·ããã³ãã«è¨å·ã¨ã¯å®å ¨ã«ç¬ç«ãã¦ãã¾ããå ±éãªç¹ã¯å ±ã« æ¹è¡æåãå«ããã¨ã ãã§ãã ãããã¯ãæåã¯ã©ã¹ã®ä¸ã§ã¯ç¹å¥ãªæå³ãæã¡ã¾ããã </literallayout> </refsect2> <refsect2 id="regexp.reference.squarebrackets"> <title>è§æ¬å¼§</title> <literallayout> å·¦ãã©ã±ããã¯æåã¯ã©ã¹ã®éå§ã表ããå³ãã©ã±ããã«ããçµäº ãã¾ããå³ãã©ã±ããã¯ãããèªä½ç¹å¥ãªãã®ã§ã¯ããã¾ããã å³ãã©ã±ãããã¯ã©ã¹ã®ã¡ã³ãã¼ã¨ãã¦å¿ è¦ãªå ´åã(ãããã㪠ãã°ãæåã«ãããè¨å·ãæã£ã¦ããå¾ã§)ã¯ã©ã¹ã®æåã®æåãã¼ã¿ ãããããããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããå¿ è¦ãããã¾ãã æåã¯ã©ã¹ã¯ã対象ã®1æåã«ããããã¾ãããã®æåã¯ã¯ã©ã¹ã«ãã å®ç¾©ãããæåéåã®ä¸ã«ããå¿ è¦ãããã¾ãããã ãã ã¯ã©ã¹ã®æåã®æåããããè¨å·ã®å ´åã¯ã対象æåã¯æ®ããã«ãã å®ç¾©ãããéåã®ã課å ãã£ã¦ã¯ãªãã¾ããã ãããè¨å·ãã¯ã©ã¹ã®ã¡ã³ãã¼ã¨ãã¦å¿ è¦ãªå ´åã¯ãå¿ ããæåã® æåã¨ããªãããããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããããã«ãã¦ä¸ ããã ä¾ãã°ãæåã¯ã©ã¹ [aeiou] ã¯å°æåã®æ¯é³ã«ããããã¾ããã [^aeiou] ã¯å°æåã®æ¯é³ä»¥å¤ã®æåã«ããããã¾ãã ãããè¨å·ã¯ãåå¨ããªããã®ãåæãããã¨ã«ããã¯ã©ã¹ã«ãã æåãæå®ãã便å©ãªè¡¨è¨ã§ãã ãããè¨å·ã¯ãè¨æã§ã¯ããã¾ããã対象æååããæåãæ¶è²»ãã ç¾å¨ã®ãã¤ã³ã¿ãæååã®çµç«¯ã«ããå ´åã«ã¯å¤±æãã¾ãã 大æåå°æåãåºå¥ããªãããããè¡ãããå ´åãã¯ã©ã¹ã®æå㯠大æåã»å°æåã®ä¸¡æ¹ã表ãã¾ããããã¯ãä¾ãã°ã大æåå°æå ãåºå¥ããªãå ´åã®ããã [aeiou] 㯠"a" ã¨åæ§ã« "A" ã«ããã ããæåå°æåãåºå¥ããªãå ´åã®ããã [^aeiou] 㯠"A" ã«ãã ããã¾ããã䏿¹ã大æåå°æåãåºå¥ããå ´åã¯ããããã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ã¾ã㯠<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãªã ã·ã§ã³ãã©ã®ããã«è¨å®ãããã¨ãæ¹è¡æåã¯ãæåã¯ã©ã¹ã«ããã¦ç¹ å¥ãªæ¹æ³ã§å¦çããã¾ããã[^a] ã®ãããªã¯ã©ã¹ã¯å¸¸ã«æ¹è¡ã«ããã ãã¾ãã ãã¤ãã¹ (ãã¤ãã³)æåã¯æåã¯ã©ã¹ã®ä¸ã§æåã®ç¯å²ãæå®ãã ããã«ä½¿ç¨ããã¾ããä¾ãã°ã[d-m] 㯠d 㨠m ã®éã®ãããã æåã«ããããã¾ããéã«ãã¹æåãã¯ã©ã¹ã®ä¸ã«å¿ è¦ãªå ´åã¯ã ããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããããã¯ã©ã¹ã®æåã¾ãã¯æå¾ã® ãããªç¯å²ã示ãã¨ã¯è§£éãããªãå ´æã«ä½¿ç¨ãã¦ä¸ããã æåãªãã©ã« "]" ãç¯å²ã®æå¾ã®æåã¨ãã¦ä½¿ç¨ãããã¨ã¯ã§ãã¾ ããã[W-]46] ã®ãããªãã¿ã¼ã³ã¯ã2ã¤æåã®ã¯ã©ã¹("W" ããã³ "-")ã®å¾ã«ãªãã©ã«æåå "46]" ãç¶ãã¦ããã¯ã©ã¹ã¨ãã¦è§£é ããã"W46]"ã¾ã㯠"-46]" ã«ããããã¾ããããããç¯å²ã®çµç«¯ ã¨ãã¦è§£éããã "]" ãããã¯ã¹ã©ãã·ã¥ã§ã¨ã¹ã±ã¼ãããå ´åã [W-\]46] ã¯ç¯å²ã®å¾ã«2ã¤ã®æåãç¶ãä¸ã¤ã®ã¯ã©ã¹ã¨ãã¦è§£éã ãã¾ãã"]" ã®8é²ãããã¯16é²è¡¨ç¾ãç¯å²ã®çµç«¯ã¨ãã¦ä½¿ç¨å¯è½ ã§ãã ç¯å²æå®ã§ã¯ãASCII ç §åå¦çãè¡ãã¾ããç¯å²ã§ã¯ã[\000-\037] ã®ããã«æ°å¤çã«æå®ããæåã使ç¨å¯è½ã§ããæåãå«ãç¯å²ã 大æåå°æåãåºå¥ããªãããããè¨å®ããã¦ããã¨ãã«ä½¿ç¨ããã å ´åã大æåå°æåã®ä¸¡æ¹ã«ããããã¾ããä¾ãã°ã[W-c] ã¯ã [][\^_`wxyzabc] ã«ç価ã§ããã大æåå°æåã«é¢ä¿ãªããããã ã¾ããæåãã¼ãã«ã§ "fr" ãã±ã¼ã«ã使ç¨ãã¦ããå ´åã [\xc8-\xcb] ã¯ã大æåå°æåã®åºå¥ç¡ãã¢ã¯ã»ã³ãä»ãã® E ã« ããããã¾ãã æåå \d, \D, \s, \S, \w, \W ã¯æåã¯ã©ã¹ã®ä¸ã§ãæå®å¯è½ ã§ãããã¯ã©ã¹ã«ãããããæåã追å ãã¾ããä¾ãã°ã[\dABCDEF] ã¯ã16鲿°ã«ããããã¾ãããããè¨å·ã¯å¤§æåã¨çµã¿åããã¦ å°æåã«ãããã³ã°??ããç¯å²ã®çãæåéåãç°¡ä¾¿ã«æå®ãã ãã¨ãã§ãã¾ãã ä¾ãã°ãã¯ã©ã¹ [^\W_] ã¯æåã¾ãã¯æ°åã«ããããã¾ãããã¢ã³ã ã¼ã¹ã³ã¢ã«ã¯ããããã¾ããã \, -, (å§ç«¯ã®)^ 以å¤ã®å ¨ã¦ã®è±æ°åã§ãªãæåããã³çµç«¯ã® ] ã¯ã æåã¯ã©ã¹ã«ããã¦ç¹å¥ã§ãªãæåã§ãããã¨ã¹ã±ã¼ãããå ´åã§ã æªå½±é¿ã¯ããã¾ããã </literallayout> </refsect2> <refsect2 id="regexp.reference.verticalbar"> <title>åç´ãã¼</title> <literallayout> åç´ãã¼æåã¯ã鏿è¢ãæå®ãããã¿ã¼ã³ã§ä½¿ç¨ããã¾ããä¾ãã°ããã¿ã¼ã³ gilbert|sullivan ã¯ã"gilbert" ã¾ã㯠"sullivan" ã«ããããã¾ãã鏿è¢ã®æ°ã« å¶éã¯ããã¾ãããã¾ãã鏿è¢ã空ã¨ãããã¨ãå¯è½ã§ã (ç©ºã®æååã«ããããã¾ã)ããããã®éç¨ã¯ãå鏿è¢ãå·¦ãã å³ã«éã«è¡ããæåã«æåãããã®ã使ç¨ããã¾ãã鏿è¢ã(ä»¥ä¸ ã§èª¬æãã)ãµããã¿ã¼ã³ã®ä¸ã«ããå ´åã"æåãã"ã¨ãããã¨ã¯ ãµããã¿ã¼ã³ã®é¸æè¢ã¨åæ§ã«ã¡ã¤ã³ãã¿ã¼ã³ã®æ®ãã®é¨åãããã ããã¨ãããã¨ãæ?Wã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.internal_options"> <title>å é¨ãªãã·ã§ã³è¨å®</title> <literallayout> <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> , <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> , <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> , <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ã® è¨å®ã¯ã"(?" ããã³ ")" ã§æ¬ã£ã Perl ãªãã·ã§ã³æåã«ãã ãã¿ã¼ã³å é¨ã§å¤æ´å¯è½ã§ãã i <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>ãæå® m <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãæå® s <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãæå® x <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ãæå® ä¾ãã°ã(?im) ã¯å¤§æåå°æåãåºå¥ããªããè¤æ°è¡ãããã³ã°ã æå®ãã¾ãããã¤ãã³æåãåã«ã¤ãããã¨ã«ãããã®ãªãã·ã§ã³ ãè§£é¤ãããã¨ãå¯è½ã§ãã(?im-sx) ã®ããã«è¨å®ã¨è§£é¤ãçµã¿å ããããã¨ãå¯è½ã§ãããã®å ´åã¯ã<link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>ããã³<link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>ãè¨å®ããã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ããã³ <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> ãè§£é¤ããã¾ããããæåããã¤ãã³ã®åã«ãå¾ã«ãæå®ããã å ´åããã®ãªãã·ã§ã³ã¯è§£é¤ããã¾ãã ãªãã·ã§ã³å¤æ´ã®é©ç¨ç¯å²ã¯è¨å®ãè¡ããããã¿ã¼ã³ã®å ´æã«ä¾å ãã¾ãããµããã¿ã¼ã³ã®å¤å´ã§è¨å®ãããå ´åããã®å¹æã¯ããªã ã·ã§ã³ã®è¨å®ãããã¯è§£é¤ããããã³ã°ã®æåã§è¡ãããã®ã¨åã ã¨ãªãã¾ããæ¬¡ã®ãã¿ã¼ã³ã¯ãå ¨ã¦å ¨ãåæ§ã«åä½ãã¾ãã (?i)abc a(?i)bc ab(?i)c abc(?i) ã¯ã³ã³ãã¤ã«å¾ã®ãã¿ã¼ã³ã¨ãã¦ã¯ããã¿ã¼ã³ abc ã« <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> ãè¨å®ãããã®ã¨ãªãåãã«ãªãã¾ããè¨ããããã¨ããã®ãã㪠"æä¸ä½ã®"è¨å®ã¯ã(ãµããã¿ã¼ã³å é¨ã§ä»ã®å¤æ´ãè¡ããªãéã) ãã¿ã¼ã³å ¨ä½ã«é©ç¨ããã¾ããæä¸ä½ã¨åãè¨å®ãè¤æ°åè¡ãã㦠ããå ´åãæãå³å´ã®è¨å®ã使ç¨ããã¾ãã ãµããã¿ã¼ã³ã®å é¨ã§ãªãã·ã§ã³ã®å¤æ´ãè¡ãããå ´åãå¹æã¯ ç°ãªãã¾ãããã®åä½ã®å¤æ´ã¯ãPerl 5.005 ã§è¡ããã¾ããã ãµããã¿ã¼ã³å ã®ãªãã·ã§ã³å¤æ´ã¯ããããæå®ãããµããã¿ã¼ ã³ã®ãã®é¨åã«ã®ã¿å½±é¿ãã¾ãããã®ããã (a(?i)b)c ã¯ãabc ããã³ aBc ã«ããããã(<link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>ã使ç¨ãã ã¦ããªãã¨ä»®å®ããå ´åã)ä»ã®æååã«ã¯ããããã¾ããã ãã®ããã«ããªãã·ã§ã³ã¯ããã¿ã¼ã³ã®åå ´æã«ç°ãªã£ãè¨å®ãè¡ã ãã¨ãå¯è½ã§ãããã鏿è¢ã«å¾¡ããªãã夿´ã¯å ¨ã¦ãåããµãã ã¿ã¼ã³å ã®å¾ã«ç¶ãæã«æ³¢åãã¾ããä¾ãã°ã (a(?i)b|c) ã¯ã"C" ã«ãããããéã«æåã®æããªãã·ã§ã³è¨å®åã«ç ´æ£ ããã¦ããã«ããããããã"ab", "aB", "c", "C" ã«ããããã¾ãã ããã¯ããªãã·ã§ã³è¨å®ã®å¹æãã³ã³ãã¤ã«æã«çãããã¨ã«ãã ã¾ããããã§ãªãã¨ãé常ã«å¥å¦ãªãã¨ãçãããã¨ã«ãªãã¾ãã PCRE ç¹æã®ãªãã·ã§ã³ã<link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link>ããã³<link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link>ã¯ããããæå U ããã³ X ã使ç¨ãããã¨ã«ãããPerl äºæã®ãªãã·ã§ã³ã¨åæ§ã«å¤ æ´ãããã¨ãå¯è½ã§ãã (?X) ãã©ã°ã®è¨å®ã¯ç¹å¥ã§ãæä¸ä½ã®å ´åã§ãã常ã«ãã¿ã¼ã³ å ã§ä»ã®è¨å®ããªã³ã«ããåã«æå®ããå¿ è¦ãããã¾ãã ãã®ãã©ã°ã¯ãæåã«æå®ããã®ãæåã§ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.subpatterns"> <title>ãµããã¿ã¼ã³</title> <literallayout> ãµããã¿ã¼ã³ã¯æ¬å¼§(丸æ¬å¼§)ã§åºåããããã¹ããå¯è½ã§ãã ãã¿ã¼ã³ã®ä¸é¨ããµããã¿ã¼ã³ã¨ãã¦æå®ããããã«ã¯ã2ã¤ã®ã ã¨ãè¡ãã¾ãã 1. 鏿è¢ã®éåããã¼ã«ã«åãã¾ããä¾ãã°ããã¿ã¼ã³ cat(aract|erpillar|) ã¯ãåèª "cat", "cataract", "caterpillar" ã«ããããã¾ãã æ¬å¼§ãã¤ããªãã¨ããã®ãã¿ã¼ã³ã¯ã"cataract", "erpillar" ã¾ãã¯ç©ºã®æååã«ããããã¦ãã¾ãã¾ãã 2. æ¬å¼§ã¯ããµããã¿ã¼ã³ã(以ä¸ã§å®ç¾©ãã)å¤ãåå¾ãããµããã¿ã¼ã³ ã¨ãã¦è¨å®ãã¾ãããã¿ã¼ã³å ¨ä½ãããããããµããã¿ã¼ã³ã«ããã ãã対象æååã®ä¸é¨ã¯ã <function>pcre_exec</function> ã® <emphasis>ovector</emphasis> 弿°ã«ããã³ã¼ã«ããå´ã«è¿ããã¾ããå¤ãåå¾ãããµããã¿ã¼ã³ã® çªå·ãå¾ãããã«æ¬å¼§ã®å§ã¾ãã¯(1ããå§ã¾ã£ã¦)å·¦ããå³ã«æ°ãããã¾ãã ä¾ãã°ãæåå "the red king" ãæ¬¡ã®ãã¿ã¼ã³ã«ããããããå ´åã the ((red|white) (king|queen)) åå¾ãããé¨åæååã¯ã "red king", "red", "king" ã§ããã ãããã 1, 2, 3 çªã¨ãªãã¾ãã æ¬å¼§ã2ã¤ã®æ©è½ãæãã¦ããã¨ããäºå®ã常ã«è¯ãæ¹ã«åãããã§ ã¯ããã¾ãããå¤ãåå¾ããå¿ è¦ã¯ãªããããµããã¿ã¼ã³ãè¤æ°ç¨ ãããã¨ãå¿ è¦ã§ããå ´åãå°ãªãããã¾ãããå·¦æ¬å¼§ã®å¾ã« "?:" ãä»ããå ´åããã®ãµããã¿ã¼ã³ã¯å¤ã®åå¾ãè¡ãããå¤ãåå¾ãã ãµããã¿ã¼ã³ã®çªå·ãè¨ç®ããéã«ãå ç®ããã¾ãããä¾ãã°ãæåå "the white queen" ã¯æ¬¡ã®ãã¿ã¼ã³ããããããã¦ã¿ã¾ãããã the ((?:red|white) (king|queen)) åå¾ãããé¨åæååã¯ã"white queen" 㨠"queen" ã§ããã 1çªã¨ 2çªã«ãªãã¾ããé¨åæååã®æå¤§æ°ã¯99ã§ãããå¤ã®åå¾ã è¡ããã®ã¨è¡ããªããã®ãåããã¦å ¨ãµããã¿ã¼ã³ã®æå¤§æ°ã¯ 200ã§ãã 便å©ãªç¥è¨ã¨ãã¦ããªãã·ã§ã³ã®è¨å®ãå¤ãåå¾ããªããµããã¿ã¼ã³ã® å é ã§æå®ããå¿ è¦ãããå ´åããªãã·ã§ã³ã®æåã "?" 㨠":" ã® éã«å ¥ãããã¨ãã§ãã¾ããã¤ã¾ããæ¬¡ã®2ã¤ã®ãã¿ã¼ã³ã (?i:saturday|sunday) (?:(?i)saturday|sunday) ã¯å ¨ãåãæååéåã«ããããã¾ãã鏿è¢ã¯å·¦ããå³ã«è©¦è¡ã ãããªãã·ã§ã³ã¯ãµããã¿ã¼ã³ã®çµç«¯ã«éããã¾ã§ãªã»ãããã㪠ãã®ã§ãããæã«ãããªãã·ã§ã³è¨å®ã¯å¾ã«ç¶ãæã«ãä½ç¨ãã¾ãã ãã®ãããä¸ã®ãã¿ã¼ã³ã¯ã"Saturday" ã¨åæ§ã«"SUNDAY" ã«ã ããããã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.repetition"> <title>ç¹°ãè¿ã</title> <literallayout> ç¹°ãè¿ãã¯ãå復æå®åã«ããæå®ãã¾ããæ¬¡ã®è¦ç´ ã®å¾ã«ä»ãã ãã¨ãåºæ¥ã¾ãã æåã¾ãã¯ã¨ã¹ã±ã¼ããããæå ã¡ã¿æå . æåã¯ã©ã¹ 徿¹åç § (次ã®ç¯ãåç §ä¸ãã) æ¬å¼§ã§æ¬ã£ããµããã¿ã¼ã³(è¨æãé¤ã - 以ä¸ãåç §ä¸ãã) é常ã®å復æå®åã¯ã大æ¬å¼§ã®ä¸ã«2ã¤ã®æ°ãã«ã³ãã§åºåã£ã¦æå® ãããã¨ã«ããããããå¯è½ãªæå°ã®æ°ã¨æå¤§ã®æ°ãæå®ãã¾ãã æå®ããæ°ã¯ã65536 æªæºã§ãããæåã®æ°ã¯2çªç®ã®æ°ä»¥ä¸ã§ãã å¿ è¦ãããã¾ããä¾ãã°ã z{2,4} ã¯ã"zz", "zzz", "zzzz" ã«ããããã¾ãã峿¬å¼§ã¯ããèªä½ç¹å¥ãª æåã§ã¯ããã¾ããã2çªç®ã®æ°åãçç¥ãããããã«ã³ããããå ´åã ä¸éã¯è¨å®ããã¾ããã2çªç®ã®æ°åã¨ã«ã³ãã®ä¸¡æ¹ãçç¥ãããå ´åã å復æå®åã¯ãå¿ è¦ãªãããã®æ°ãã®ãã®ãæå®ãã¾ããã¤ã¾ãã [aeiou]{3,} ã¯3å以䏿¯é³ãç¶ããã®ã«ããããã¾ããããã£ã¨å¤ãå ´åã«ã ããããã¾ãã䏿¹ã \d{8} ã¯8æ¡ã®æ°åã«ã®ã¿ããããã¾ãã左大æ¬å¼§ã¯å復æå®åãç½®ããªã å ´æã¾ãã¯å復æå®åã®æ§æã«ãããããªãå ´æã«ç½®ããå ´åãæå ãªãã©ã«ã¨ãã¦è§£éããã¾ããä¾ãã°ã{,6} ã¯å復æ¥Îåã§ã¯ãªãã 4ã¤ã®æåã®æåãªãã©ã«ã¨ãªãã¾ãã å復æå®åã¨ã㦠{0} ãæå®ãããã¨ãã§ããåã®é ç®ããã³å復 æå®åãåå¨ããªãã¨ããå¼ãæå®ãããã¨ã«ãªãã¾ãã ç°¡åã®ãããæã使ç¨ããã3ã¤ã®å復æå®åã«ã¯ã次ã®ãããª1æå ã®çç¥åãããã¾ãã * ã¯ã{0,} ã¨ç価ã§ãã + ã¯ã{1,} ã¨ç価ã§ãã ? ã¯ã{0,1} ã¨ç価ã§ãã å復ãè¨å®ãããã©ã®æåã«ããããããªã次ã®ãããªãµããã¿ã¼ã³ã« ããç¡éã«ã¼ãã使ãããã¨ãå¯è½ã§ãã (a?)* 以åã®ãã¼ã¸ã§ã³ã® Perl ããã³ PCRE ã¯ãã®ãããªãã¿ã¼ã³ã«é¢ ãã¦ã³ã³ãã¤ã«æã«ã¨ã©ã¼ãçºçãã¦ãã¾ããããããã便å©ãªå ´ åãããã®ã§ããã®ãããªãã¿ã¼ã³ã¯ç¾å¨ã¯è¨±å¯ããã¦ãã¾ãã ããããä»ã®ãµããã¿ã¼ã³ã®ç¹°ãè¿ããã©ã®æåã«ããããããªã å ´åãã«ã¼ãã¯å¼·å¶çã«ä¸æããã¾ãã ããã©ã«ãã§ã¯ãå復æå®å㯠"貪欲"ãã¤ã¾ããæ®ãã®ãã¿ã¼ã³ã 失æããããã¨ãªã(許å¯ãããåæ°ã®æå¤§æ°ã¾ã§)åºæ¥ãã ãå¤ã ã®ãã®ã«ããããã¾ãã ãã®åä½ãåé¡ãçããå¤å ¸çãªä¾ã¨ãã¦ã¯ã C ããã°ã©ã ã®ã³ã¡ã³ãã«ãããããããã¨ããå ´åãããã¾ãã ã³ã¡ã³ãã¯ã/* 㨠*/ ã®éã«ããã¾ããããã®ä¸ã«ãç¬ç«ããæå * 㨠/ ãç¾ããå¯è½æ§ãããã¾ããC ã®ã³ã¡ã³ãã«ãããããã ããã«ã次ã®ãã¿ã¼ã³ã使ç¨ãã¦ã¿ã¾ãããã /\*.*\*/ ãæåå /* first command */ not comment /* second comment */ ã«ä½¿ç¨ããå ´åã失æãã¾ããããã¯ã.* ã®è²ªæ¬²ãã®ããã§æå®ãã ãã¿ã¼ã³ãæååå ¨ä½ã«ããããã¦ãã¾ãããã§ãã ããããå復æå®åã®å¾ã«çå符ãç¶ããå ´åã貪欲ãã¯æ¶ãã 代ããã«æå°ã®ããããè¡ãã¾ãããã®ããããã¿ã¼ã³ã /\*.*?\*/ ã¯Cã³ã¡ã³ãã«æ£ããããããã¾ããæ§ã ãªå復æå®åã®æå³ã¯ã ä»ã«ã¯å¤åããã好ã¾ãããããã®æ°ã ãã夿´ããã¾ãã ãã®çå符ã®ä½¿ç¨æ³ãå復æå®åããã®å³ã«ããå ´åã®ä½¿ç¨æ³ã¨æ··ä¹±ã ãªãã§ä¸ããããã®ããã«2種é¡ã®ä½¿ç¨æ³ããããããæã ãæ¬¡ã®ããã« 2éã«ä½¿ç¨ããããã¨ãããã¾ãã \d??\d 鏿ã«ãã1æ¡ã®æ°åã«ããããã¾ããããã¿ã¼ã³ã®æ®ããããã ããå¯ä¸ã®æ¹æ³ã§ããå ´åã«ã¯ã2æ¡ã®æ°å¤ã«ããããããã¨ãå¯è½ã§ãã <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link>ãªãã·ã§ ã³ãè¨å®ãããå ´å(Perl ã§ã¯ãã®ãªãã·ã§ã³ã¯ä½¿ç¨ã§ãã¾ãã)ãå復 æå®åã¯ããã©ã«ãã§ã¯è²ªæ¬²ã§ã¯ããã¾ããã ãããããã®å復æå®åã¯ãå¾ãã«çå符ãã¤ãããã¨ã«ãã貪欲 ã«ãããã¨ãå¯è½ã§ããè¨ããããã¨ãçå符ã¯ãããã©ã«ãã®åä½ ãé転ãã¾ãã æ¬å¼§ã§æ¬ããããµããã¿ã¼ã³ã1ããå¤ãæå°ã®å復æ°ã¾ãã¯æå¤§æ° ã§æå®ããã¦ããå ´åãã³ã³ãã¤ã«æ¸ã¿ã®ãã¿ã¼ã³ã®ããã«ãæå¤§ ã¾ãã¯æå°ã®å¤§ããã«å¿ãã¦ããå¤ãã®ä¿åé åãå¿ è¦ã¨ãªãã¾ãã ãã¿ã¼ã³ãã.* ã¾ã㯠.(0,) ã§å§ã¾ãã(Perl ã§ç価ãªãã®ã¯ /s) <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãªãã·ã§ ã³ãè¨å®ããã¦ããå ´åã. ã¯æ¹è¡ã«ãããã§ããããã«ãªããæé»ã® ãã¡ã«ã¢ã³ã«ã¼ä»ãã¨ãªãã¾ãã ããã¯ãå¾ãã«ç¶ããã®ã«ãããã対象æååã®åæåã®ä½ç½®ã« 対ãã¦è©¦è¡ãããããã§ãããã®ãããæåã«ãããããå¾ã§ ã©ããã®ä½ç½®ã§å ¨ä½ã®ããããåã³è¡ããã¨ã¯ã§ãã¾ããã PCRE ã¯ãã®ãããªãã¿ã¼ã³ã \A ãåã«ãããã®ã¨ãã¦å¦çãã¾ãã 対象æååãæ¹è¡ãå«ã¾ãªããã¨ãæ¢ç¥ã®å ´åã ãã¿ã¼ã³ã .* ã§å§ã¾ãå ´åã®æé©åã®ããã«ããã㯠^ ãç¨ã㦠ã¢ã³ã«ã¼ãé½ã«ç¤ºãããã«<link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãè¨å®ããä¾¡å¤ ãããã¾ãã å¤ãåå¾ãããµããã¿ã¼ã³ãç¹°ãè¿ãããæãåå¾ãããå¤ã¯ã æå¾ã®ç¹°ãè¿ãã§ãããããé¨åæååã§ããä¾ãã°ã (tweedle[dume]{3}\s*)+ "tweedledum tweedledee" ãããããããå ´åãåå¾ãããé¨åæ ååã®å¤ã¯ã"tweedledee" ã§ãããããããã¹ããããå¤ãåå¾ ãããµããã¿ã¼ã³ãããå ´åã対å¿ããåå¾å¤ã¯åã®ç¹°ãè¿ãã§æ å®ããããã®ã«ãªãå¯è½æ§ãããã¾ããä¾ãã°ã /(a|(b))+/ ã "aba" ã«ããããããã¨ã2çªç®ã«åå¾ãããé¨åæååã¯ã "b" ã«ãªãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.back_references"> <title>徿¹åç §</title> <literallayout> æåã¯ã©ã¹ã®å¤ã§ãããã¯ã¹ã©ãã·ã¥ã®å¾ã« 0 ãã大ããæ°åã ä»ãããã®ã¯ãã¿ã¼ã³ã§ä»¥åã«(ããªãã¡å·¦ã«ãã)å¤ãåå¾ãã ãµããã¿ã¼ã³ã«å¯¾ãã徿¹åç §ã§ãããåã«ããå¤ã®åå¾ãè¡ã å·¦æ¬å¼§ã®æ°ã¾ã§ä½¿ç¨å¯è½ã§ãã ããããããã¯ã¹ã©ãã·ã¥ã®å¾ã«ç¶ã10鲿°ã10æªæºã®å ´åã¯å¸¸ã« 徿¹åç §ã¨ãã¦è§£éããããã¿ã¼ã³å ¨ä½ã®å¤ãåå¾ããå·¦æ¬å¼§ã®æ° ã«æºããªãå ´åã«ã®ã¿ã¨ã©ã¼ã¨ãªãã¾ãã è¨ããããã¨ãåç §ãããæ¬å¼§ã¯10æªæºã®æ°ã«ã¤ãã¦ã¯åç §ããå´ ã®å·¦ã«ããå¿ è¦ããªãã¨ãããã¨ã§ãã ããã¯ã¹ã©ãã·ã¥ã®å¾ã«æ°åãç¶ãå ´åã®å¦çã®è©³ç´°ã«ã¤ãã¦ã¯ã ä¸è¨ã® "ããã¯ã¹ã©ãã·ã¥"ã¨ããé¡ã®ç¯ãåç §ä¸ããã 徿¹åç §ã¯ããµããã¿ã¼ã³èªä½ãããããããã®ãããããã ç¾å¨ã®å¯¾è±¡æååã«ãããå¤ãåå¾ãããã¿ã¼ã³ãå®éã«ãããã ããã®ã«ããããã¾ãããã®ããããã¿ã¼ã³ (sens|respons)e and \1ibility ã¯ã"sense and sensibility" ããã³ "response and responsi- bility" ã«ããããã¾ããã"sense and responsibility" ã«ã¯ ããããã¾ããã徿¹åç §ã®æç¹ã§ã大æåå°æåãåºå¥ããããã ãæå¹ã®å ´åãæåã®å¤§æåå°æåãé¢ä¿ãã¾ããä¾ãã°ã ((?i)rah)\s+\1 ã¯ã"rah rah" ããã³ "RAH RAH" ã«ããããã¾ããã å ã®åå¾ãããµããã¿ã¼ã³ã¯å¤§æåå°æåãåºå¥ããããããã¦ã ãã«ããããããã"RAH rah" ã«ã¯ããããã¾ããã åããµããã¿ã¼ã³ã«è¤æ°åã®å¾æ¹åç §ãè¡Fãã¨ãã§ãã¾ãããã ãµããã¿ã¼ã³ãç¹å®ã®ãããã§å®éã«ã¯ä½¿ç¨ããã¦ããªãå ´åã 徿¹åç §ã¯å¸¸ã«å¤±æãã¾ããä¾ãã°ããã¿ã¼ã³ (a|(bc))\2 ã¯ã"bc" ã§ã¯ãªã "a" ã«æåã«ãããããå ´åã«å¸¸ã«å¤±æãã¾ãã æå¤§ 99 åã®å¾æ¹åç §ã使ç¨ã§ãããããããã¯ã¹ã©ãã·ã¥ã®å¾ã« æ°åãç¶ããã®ã¯å ¨ã¦å¾æ¹åç §çªå·ã®å¯è½æ§ãããéåã¨ãã¦è§£é ããã¾ãã ãã¿ã¼ã³ã®å¾ã«æ°åãç¶ãå ´åã徿¹åç §ãçµäºããããã« ãªãããã®åºåãæåãç½®ãå¿ è¦ãããã¾ãã <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ãªã ã·ã§ã³ãè¨å®ãã¦ããå ´åã空ç½ãåºåãæåã¨ãããã¨ãã§ãã¾ãã ãã®ä»ã®å ´åã¯ç©ºã®ã³ã¡ã³ãã使ç¨ã§ãã¾ãã åç §ããæ¬å¼§ã®ä¸ã«ãã徿¹åç §ã¯ããµããã¿ã¼ã³ãæåã«ä½¿ç¨ã ãéã«å¤±æãã¾ãããã®ããã(a\1) ã¯ä½ã«ãããããã¾ããã ãããããã®ãããªåç §ã¯ãè¤æ°å使ç¨ãããµããã¿ã¼ã³ã®å é¨ã§ æç¨ã§ããä¾ãã°ã次ã®ãã¿ã¼ã³ (a|b\1)+ ã¯ã"a" ã®ä¸¦ã³ãããã³ "aba"ã"ababaa" çã«ãããããã¾ãã ãµããã¿ã¼ã³ã®åå復ã«ããã¦ã徿¹åç §ã¯ãåã®ç¹°ãè¿ãã«å¯¾å¿ ããæååã«ããããã¾ãããããåä½ãããããã«ãæåã®å復 æã«å¾æ¹åç §ã«ãããããå¿ è¦ããªããããªãã¿ã¼ã³ã§ããå¿ è¦ã ããã¾ããããã¯ä¸ã®ä¾ã®ããã«é¸æã使ç¨ããããã¼ããæå°ã¨ ããå復æå®åã«ããè¡ããã¨ãã§ãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.assertions"> <title>è¨æ</title> <literallayout> è¨æã¯ãç¾å¨ããããè¡ã£ã¦ããä½ç½®ã®å¾ã«ç¶ããåã«ããæå㫠対ãããã¹ãã§ãããå®éã«ã¯æåã¸ã®ä½ç¨ãè¡ãã¾ããã \b, \B, \A, \Z, \z, ^, $ ã®ãããªç°¡åãªè¨æã³ã¼ãã以ä¸ã§èª¬ æãã¾ããããè¤éãªè¨æã¯ããµããã¿ã¼ã³ã¨ãã¦ã³ã¼ãåããã¾ ãã2種é¡ã®è¨æãããã¾ãã対象æååã«ããã¦ç¾å¨ä½ç½®ã®åã è¦ããã®ã¨ãå¾ããè¦ããã®ã§ãã è¨æãµããã¿ã¼ã³ã¯ãç¾å¨ããããè¡ã£ã¦ããä½ç½®ã夿´ãããªã ãã¨ãé¤ããé常ã¨åãããã«ãããããã¾ããåæ¹ã¸ã®è¨æã¯ã è¯å®è¨æã®å ´å (?= ã§ãå¦å®è¨æã®å ´å (?! ã§å§ã¾ãã¾ããä¾ãã°ã \w+(?=;) ã¯ãã»ãã³ãã³ãå¾ã«ç¶ãåèªã«ããããã¾ãããããããããã® ã«ã¯ãã»ãã³ãã³ãå«ã¾ãããããã¦ã foo(?!bar) ã¯ã"bar" ãå¾ãã«ç¶ããªã "foo" ã«ããããã¾ãã è¦ããã¯ä¼¼ã¦ãããã¿ã¼ã³ã«æ³¨æãã¦ä¸ããã (?!foo)bar ã¯ã"foo" 以å¤ã®ãã®ãåã«ãã "bar" ã®åå¨ãè¦ã¤ãããã¾ããã æ¬¡ã®3æåã "bar" ã§ããå ´åã«ã(?!foo) ã¯å¸¸ã« &true; ã¨ãªããã ã«ããã®ãã¿ã¼ã³ã¯ã"bar" ã®åå¨ãè¦ã¤ãããã¨ãã§ããªãã®ã§ãã ãã®åä½ãå®ç¾ããããã«ã¯ã徿¹è¨æãå¿ è¦ã§ãã 徿¹è¨æã¯ãè¯å®è¨æã®å ´å (?<= ã§ãå¦å®è¨æã®å ´å (?<! ã§å§ã¾ãã¾ããä¾ãã°ã (?<!foo)bar ã¯ã"foo" ãåã«ãªã "bar" ã®åå¨ãè¦ã¤ãã¾ãã徿¹è¨æã®å 容 ã¯ããããããæååå ¨ä½ãåºå®é·ã§ããå¿ è¦ããããã¨ã«å¶éã ãã¦ãã¾ããããããè¤æ°ã®é¸æè¢ãããå ´åãå ¨ã¦ã®åãåºå®é· ã§ããå¿ è¦ã¯ããã¾ãããã¤ã¾ãã (?<=bullock|donkey) ã¯ä½¿ç¨å¯è½ã§ããã (?<!dogs?|cats?) ã¯ã³ã³ãã¤ã«æã«ã¨ã©ã¼ãçãã¾ããç°ãªã£ãé·ãã®æååã«ãã ãããæã¯ã徿¹è¨æã®æä¸ä½ã§ã®ã¿ä½¿ç¨å¯è½ã§ãããã®æ©è½ã¯ã å ¨ã¦ã®æã®åãé·ãã®æååã«ãããããå¿ è¦ããã Perl 5.005 ã«å¯¾ãã¦æ¡å¼µããã¦ãã¾ããæ¬¡ã®ãããªè¨æ (?<=ab(c|de)) ã¯ãæä¸ä½ã®æã2ã¤ã®ç°ãªã£ãé·ãã«ããããå¾ãããã使ç¨ã§ã ã¾ãããããããæä¸ä½ã®æã2ã¤ä½¿ç¨ããããã«æ¸ãæããå ´åã¯ã 使ç¨å¯è½ã§ãã (?<=abc|abde) 徿¹è¨æã®å®è£ ã«ããã¦ã¯ãé¸æè¢æ¯ã«ä¸æçã«åºå®ã®å¹ ã ãç¾å¨ã® ä½ç½®ãå¾éãããããã試ã¿ã¾ããç¾å¨ä½ç½®ã®åã«ååãªæåããªã å ´åã¯ããããã¯å¤±æã¨ã¿ãªããã¾ãã1度ãã使ç¨ãããªããµãã ã¿ã¼ã³ã¨çµã¿åããã徿¹è¨æã¯ãæååã®çµç«¯ã§ã®ãããã³ã°ã« ç¹ã«æç¨ã§ããç¯ã®æå¾ã«1度ã ã使ç¨ãããµããã¿ã¼ã³ã®ä¾ã示ã ã¾ãã (ãããã種é¡ã®)è¤æ°ã®è¨æãé£ç¶ãã¦æå®ãããã¨ãå¯è½ã§ãã ä¾ãã°ã (?<=\d{3})(?<!999)foo ã¯åã« "999" ã§ãªã3æ¡ã®æ°åããã "foo" ã«ããããã¾ãã åè¨æã¯å¯¾è±¡æååã®åãå ´æã«ç¬ç«ãã¦é©ç¨ããããã¨ã«æ³¨æãã¦ä¸ ãããã¾ããåã®3æåãå ¨ã¦æ°åã§ãããã¨ããã§ãã¯ãããç¶ãã¦ã åã3æåã"999"ã§ãªããã¨ã確èªããã¾ãããã®ãã¿ã¼ã³ã¯ã"foo"ã® åã«6åã®æåãããããã®ççããæ°åã§æå¾ã®3æåã"999"ã§ãªãã ã¿ã¼ã³ã«ã¯ããããã¾ãããä¾ãã°ã"123abcfoo"ã«ã¯ããããã¾ããã ãããè¡ããã¿ã¼ã³ã¯æ¬¡ã®ããã«ãªãã¾ãã (?<=\d{3}...)(?<!999)foo ãã®æãæåã®è¨æã¯ãå è¡ãã6ã¤ã®æåãæ¢ããæåã®3æåãæ°å ã§ãããã¨ã確èªãã¾ããç¶ãã¦ã2çªç®ã®è¨æã¯ãå è¡ãã3æåã "999"ã§ãªããã¨ã確èªãã¾ãã è¨æã¯ãèªç±ã«çµã¿åããã¦ãã¹ãããããã¨ãå¯è½ã§ããä¾ãã°ã (?<=(?<!foo)bar)baz ã¯ã"bar" ãåã«ãããéã« "foo" ãåã«ãªã "baz" ã«ããããã¾ãã 䏿¹ã (?<=\d{3}(?!999)...)foo ã¯ã3æ¡ã®æ°ãå è¡ããä¸ã®3æåã"999"ã§ãªã"foo"ã«ãããããå¥ã® ãã¿ã¼ã³ã§ãã è¨æã®ãµããã¿ã¼ã³ã¯å¤ãåå¾ãããµããã¿ã¼ã³ã§ã¯ãªããç¹°ã è¿ãããªãããããã¾ãããããã¯ãåããã¨ãè¤æ°åè¨æããã® ã¯æå³ããªãããã§ããããè¨æãå¤ãåå¾ãããµããã¿ã¼ã³ã ä¸ã«å«ãã§ããå ´åããã¿ã¼ã³å ¨ä½ã®ä¸ã§å¤ãåå¾ãããµããã¿ã¼ ã³ãæ°ããããã«å¸¸ã«æ°ãä¸ãããã¾ãã åå¾ããé¨åæååã¯ãè¯å®è¨æã§ã¯ä½¿ç¨ããã¾ãããå¦å®è¨æ ã§ã¯æå³ãæã¡ã¾ããã è¨æã®æ¬å¼§ã§æ¬ããããµããã¿ã¼ã³ã®æ°ã¯ãæå¤§ 200 ã§ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.onlyonce"> <title>ä¸åã ã使ç¨ãããµããã¿ã¼ã³</title> <literallayout> å復ãæå¤§åããã³æå°åããå ´åã¯å ±ã«ãå¾ã«ç¶ããã®ã¸ã®ãã ãã失æããå ´åãå復æ°ãå¤ããå ´åã«ãã¿ã¼ã³ã®æ®ãã«ããã ãããã¨ãã§ãããã©ããã調ã¹ãããã«å復ããé ç®ãåè©ä¾¡ã ãã¾ãã æã ãããããåä½ãè¡ããªãæ¹ã便å©ãªãã¨ããã¾ãã ããã¯ããã¿ã¼ã³ã®ä½è ãç¶ãã¦ãã価å¤ããªãã¨ããã£ãæã« ãããã®ç¹æ§ã夿´ããããä»ã®ãã¨ãããããããåã«å¤±æãã ãå ´åã§ãã ä¾ãã°ããã¿ã¼ã³ \d+foo ãæ¬¡ã®å¯¾è±¡ã«é©ç¨ããå ´åãèãã¦ã¿ã¾ ãããã 123456bar 6æ¡ã®æ°åã«ãããããå¾ã"foo" ã«ãããããã®ã«å¤±æãã¾ãã ãããå¦çã®é常ã®åä½ã§ã¯ã5æ¡ã®æ°åã®ã¿ã \d+ ã«ããããã ã¨ãã¦ã§å度試è¡ãè¡ããç¶ã㦠4 æ¡ã¨ãã£ãããã«å®å ¨ã«å¤±æ ããã¾ã§è©¦è¡ãè¡ãã¾ããä½¿ãæ¨ã¦ã®ãµããã¿ã¼ã³ã¯ã ãã¿ã¼ã³ã®ä¸é¨ãä¸åãããããããåè©ä¾¡ãããªããã¨ãæå®ã ããã®ã§ãããã®ãããæåã« "foo" ã¸ã®ãããã«å¤±æããæç¹ ã§ããã ã¡ã«ããããã¨ãããããã¾ãã 表è¨ã«ã¯ã次ã®ä¾ã®ããã« (?> ã§å§ã¾ãå¥ã®ç¹å¥ãªæ¬å¼§ãç¨ã ã¾ãã (?>\d+)bar ãã®ç¨®é¡ã®æ¬å¼§ã¯ãä¸åããããè¡ããããã¿ã¼ã³ã®ä¸é¨ã«éµãã ãããã®ãã¿ã¼ã³ã¸ã®åãããã¯å¤±æãã¾ãã ãããããããã«æåããåã®åãããã¯ãé常ã¨åæ§ã«åä½ãã¾ ãã ãã®åã®ãµããã¿ã¼ã³ã¯ã対象æååã®ç¾å¨ã®ç¹ã«ã¢ã³ã«ã¼ããã å ´åãåãå¤ç«ãããã¿ã¼ã³ããããããæååã«ãããããã¨ã ãããã«ã説æã§ãã¾ãã ä½¿ãæ¨ã¦ã®ãµããã¿ã¼ã³ã¯ããµããã¿ã¼ã³ã®å¤ãåå¾ãã¾ããã ä¸ã®ä¾ã®ããã«ç°¡åãªå ´åã¯ãã§ããã ãå¤ãã®ãã®ãåã¿è¾¼ã ããå復ãæå¤§åããã¨èãããã¾ãã ãã®ããã\d+ ããã³ \d+? ãæ°åã®æ°ã調æ´ãã¤ã¤æ®ãã®ãã¿ã¼ã³ ããããããããããããç¹°ãè¿ãã®ã«å¯¾ãã¦ã(?>\d+) 㯠æ°åã®ä¸¦ã³å ¨ä½ã«ã®ã¿ããããå¯è½ã§ãã ãã®æ§é ã¯ãä»»æã®è¤éãªãµããã¿ã¼ã³ãå«ããã¨ãã§ãããã¹ã ãããã¨ãå¯è½ã§ãã ä½¿ãæ¨ã¦ã®ãµããã¿ã¼ã³ã¯ãæååã®çµç«¯ã«å¯¾ããããããå¹çç ã«æå®ããããã«å¾æ¹è¨æãçµã¿åããã¦ä½¿ç¨ã§ãã¾ããæ¬¡ã®ç°¡å ãªãã¿ã¼ã³ãè¦ã¦ã¾ãããã abcd$ ãããããªãé·ãæååã«é©ç¨ããå ´åãèãã¾ãã ãããã¯å·¦ããå³ã«è¡ããããããPCRE ã¯å¯¾è±¡ã® "a" ãæ¢ãã å¾ã«ãããã®ããã¿ã¼ã³ã®æ®ãã«ããããããã©ã??調ã¹ã¾ãã ãã¿ã¼ã³ã次ã®ããã«æå®ãããå ´åã ^.*abcd$ æåã® .* ã¯ã¾ãæååå ¨ä½ã«ããããã¾ãããããã«å¤±æããå ´ åãæå¾ã®æå以å¤ã®å ¨ã¦ã®ãã®ã«ãããããããå度ãããã è¡ããç¶ãã¦æå¾ã®2æå以å¤ã¨ãã風ã«åä½ãã¾ãã "a" ã®æ¤ç´¢ãæååå ¨ä½ã«å¯¾ãã¦å·¦ããå³ã«å度è¡ãããã å¹çã¯è¯ãããã¾ããããããããã¿ã¼ã³ã次ã®ããã«æ¸ããå ´åã ^(?>.*)(?<=abcd) ãã®å ´åã¯ã.* ã«é¢ããåæ¤ç´¢ã¯è¡ããããæååå ¨ä½ã«ã®ã¿ãã ããã¾ããç¶ã徿¹è¨æã¯ãæå¾ã®4æåã«å¯¾ãã試è¡ã1åã ãè¡ ãã¾ããããã失æããå ´åããããã¯ãã ã¡ã«å¤±æãã¾ããé·ã æååã®å ´åããã®æ¹æ³ã«ããå®è¡æéã«ã¯ããªãã®å·®ãçãã¾ãã ãã¿ã¼ã³ã®ç¡å¶éã®ç¹°ãè¿ãããµããã¿ã¼ã³å ã«æãã¦ããããã®ãµã ãã¿ã¼ã³èªä½ã®ç¡å¶éã®å復ãå¯è½ãªå ´åãä¸åº¦éãã®ãµããã¿ã¼ã³ã® 使ç¨ããããã«é常ã«é·ãæéããã失æãããã¨ãåé¿ããããã®å¯ ä¸ã®ææ®µã§ãã ãã¿ã¼ã³ (\D+|<\d+>)*[!?] ã¯ãç¡å¶éã®æ°ã®å¯æååã«ããããã¾ãããã®å¯æååã¯éæ°å¤ãã ãªãã<>ã§æ¬ãããæ°å¤ã®ã©ã¡ããã§ãå¾ã« ! ã¾ã㯠? ãç¶ããã®ã§ ãããããããå ´åãå®è¡ã¯é«éã§ãããããã以ä¸ã®æååã«é©ç¨ã ãå ´åã aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ã¨ã©ã¼ãåºåããã¾ã§ã«é·ãæéãè¦ãã¾ããããã¯ãäºã¤ã®åå¾©ã«æ ååãåå²ãã鏿è¢ãå¤ããå ¨ã¦è©¦ã¿ãå¿ è¦ãããããã§ãã(ãã®ä¾ ã§ã¯ãçµç«¯ã«åä¸ã®æåã§ã¯ãªã[!?]ã使ç¨ãã¦ãã¾ããããã¯ãPCRE ã¨Perlã¯å ±ã«åä¸ã®æåã使ç¨ããå ´åã«ããæ©ã失æã¨å¤å®ãããã ã«æé©åããããã§ãããããã«å¿ è¦ãªæå¾ã®ä¸æåããããã¯è¨æ¶ã ã¦ãããæååã«ããããªãå ´åã«æ©æã«å¤±æã¨å¤å®ãã¾ãã) ãã®ãã¿ã¼ã³ã次ã®ããã«å¤æ´ããå ´åã ((?>\D+)|<\d+>)*[!?] æ°å以å¤ã®ä¸¦ã³ã«ããä¸åãçãããã¨ããªããªãã失æã¯æ©æã«çã ã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.conditional"> <title>æ¡ä»¶ä»ããµããã¿ã¼ã³</title> <literallayout> è¨æã®çµæã¾ãã¯åã®å¤ãåå¾ãããµããã¿ã¼ã³ãããããããã© ããã«ããããµããã¿ã¼ã³ã®ãããå¦çãè¡ã£ããããµããã¿ã¼ã³ã® 2ã¤ã®é¸æè¢ã鏿ããããããã¨ãå¯è½ã§ããæ¡ä»¶ä»ããµããã¿ã¼ ã³ã«ã¯2ã¤ã®å½¢å¼ãããã¾ãã (?(condition)yes-pattern) (?(condition)yes-pattern|no-pattern) æ¡ä»¶ãæºããããå ´åãyes-pattern ã使ç¨ããã¾ããããã§ãªã å ´åã¯ã(æå®ãããå ´åã¯) no-pattern ã使ç¨ããã¾ãããµãã ã¿ã¼ã³ã«2ã¤ä»¥ä¸ã®é¸æè¢ãããå ´åãã³ã³ãã¤ã«æã«ã¨ã©ã¼ã«ãªã ã¾ãã 2種é¡ã®æ¡ä»¶ãããã¾ããæ¬å¼§ã®éã®ããã¹ããæ°åã®ä¸¦ã³ãããªã å ´åãæ¡ä»¶ã¯ããã®çªå·ã®å¤ãåå¾ãããµããã¿ã¼ã³ãåã«ããã ãã¦ããå ´åã«æºãããã¾ããæ¬¡ã®ãã¿ã¼ã³ãè¦ã¦ã¿ã¾ãããã å¯èªæ§ãé«ããããã«æå³ã®ãªã空ç½ãæ¿å ¥ã(PCRE_EXTENDED ãªãã·ã§ã³ãæå®ãããã¨ä»®å®ãã¾ã)ã説æãç°¡åã«ãããã 3ã¤ã®é¨åã«åå²ãã¦ãã¾ãã ( \( )? [^()]+ (?(1) \) ) æåã®é¨åã¯ããªãã·ã§ã³ã®å·¦æ¬å¼§ã«ããããããã®æåãããå ´ åã«ãæåã®é¨åæååã¨ãã¦è¨å®ãã¾ãã第2ã®é¨åã¯ãæ¬å¼§ä»¥å¤ ã®ä¸ã¤ä»¥ä¸ã®æåã«ããããã¾ãã第3ã®é¨åã¯ãæåã®æ¬å¼§ã«ãã ããããã©ããã調ã¹ãæ¡ä»¶ä»ããµããã¿ã¼ã³ã§ããããããã¦ãã å ´åãã¤ã¾ãã対象ãå·¦æ¬å¼§ã§å§ã¾ã£ã¦ããå ´åãæ¡ä»¶ã¯&true;㨠ãªããyes-pattern ãå®è¡ããã峿¬å¼§ãå¿ è¦ã¨ãªãã¾ãã ããã§ãªãå ´åãno-pattern ãåå¨ããªãããããµããã¿ã¼ã³ã¯ ä½ã«ãããããã¾ãããè¨ããããã¨ããã®ãã¿ã¼ã³ã¯ãæ¬å¼§ãªã ã®ä¸¦ã³ã«ããããããªãã·ã§ã³ã§æ¬å¼§ã§å²ã¾ãã並ã³ã«ããããã¾ãã æ¡ä»¶ãæ°åã®ä¸¦ã³ã®å ´åãè¨æã¨ãªãã¾ããè¯å®ãããã¯å¦å®ã® åæ¹ã¾ãã¯å¾æ¹è¨æã¨ãªãã¾ããæ¬¡ã®ãã¿ã¼ã³ãè¦ã¦ã¿ã¾ãããã ãã®ãã¿ã¼ã³ã«ãæå³ã®ãªããã¿ã¼ã³ãæ¿å ¥ãã2ã¤ã®é¸æè¢ã2è¡ ç®ã«ç½®ãã¦ãã¾ãã (?(?=[^a-z]*[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) æ¡ä»¶ã¯ãè¯å®å¾æ¹è¨æã§ãããè±å以å¤ã®æåã®ä¸¦ã³ããã®å¾ã« è±åãç¶ããã®ã«ããããã¾ããè¨ããããã¨ã対象æååã«å°ãª ãã¨ãæåãä¸ã¤ãããã©ããã調ã¹ã¾ããæåãã¿ã¤ããã¨ã æ¤ç´¢å¯¾è±¡ã¯æåã®é¸æè¢ã«å¯¾ãã¦ããããã¾ããã¿ã¤ãããªãå ´å ã¯ã2çªç®ã«ããããã¾ãããã®ãã¿ã¼ã³ã¯ã2ã¤ã®å½¢å¼ dd-aaa-dd ã¾ã㯠dd-dd-dd ã®ã©ã¡ããã®æååã«ããããã¾ãããã ãã aaa ã¯è±åãdd ã¯æ°åã§ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.comments"> <title>ã³ã¡ã³ã</title> <literallayout> (?# ã¨ãã並ã³ã¯ãéå§ãæå®ãã¾ããã³ã¡ã³ãã¯ã次ã®å³æ¬å¼§ã¾ã§ ç¶ãã¾ããæ¬å¼§ã®ãã¹ãã¯è¨±å¯ããã¾ãããã³ã¡ã³ãä¸ã®æåã¯ã ãã¿ã¼ã³ãããã³ã°ã«ã¯å ¨ãé¢ä¿ãã¾ããã PCRE_EXTENDED ãªãã·ã§ã³ãè¨å®ããã¦ããå ´åãæåã¯ã©ã¹ã®å¤ ã«ããã¨ã¹ã±ã¼ãããã¦ããªã # æåã¯ãã³ã¡ã³ããæå®ãã¾ãã ã³ã¡ã³ãã¯ããã¿ã¼ã³ä¸ã®æ¬¡ã®æ¹è¡æåã¾ã§ç¶ãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.recursive"> <title>å帰çãã¿ã¼ã³</title> <literallayout> ç¡å¶éã®ãã¹ãã許容ããæ¬å¼§ãå«ãæååã«ããããè¡ãåé¡ãèã ã¦ã¿ã¾ããããå帰ã使ç¨ããªãå ´åãå®ç¾å¯è½ãªæè¯ã®æ¹æ³ã¯ãä½ã ãã®åºå®ããæ·±ãã®ãã¹ãã¾ã§ããããè¡ããã¿ã¼ã³ã使ç¨ãããã¨ã§ ããããã§ã¯ãä»»æã®æ·±ãã®ãã¹ããå¦çãããã¨ã¯ã§ãã¾ãããPerl 5.6ã§ã¯ã(ä»ã®æ©è½ã¨å ±ã«)æ£è¦è¡¨ç¾ã§å帰ãè¡ããã¨ãå¯è½ã«ããå®é¨ çãªæ©è½ããµãã¼ãããã¦ãã¾ããå°ç¨ã®ã·ã¼ã±ã³ã¹ (?R)ãå帰ãæå® ããããã«ãµãã¼ãããã¦ãã¾ãããã®PCREãã¿ã¼ã³ã«ãããã®æ¬å¼§ã® åé¡ã¯æ¬¡ã®ããã«è§£æ±ºããã¾ãã(空ç½ãç¡è¦ããããã«<link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link>ãªãã·ã§ã³ ãè¨å®ããã¦ããã¨ä»®å®ãã¾ã) \( ( (?>[^()]+) | (?R) )* \) ã¾ãããã®ãã¿ã¼ã³ã¯éãæ¬å¼§ã«ããããã¾ããç¶ãã¦ãæ¬å¼§ä»¥å¤ã®ä¸¦ ã³ã¾ãã¯ãã¿ã¼ã³èªä½ã«å帰çã«ãããããé¨åæååã«ä½åã§ããã ããã¾ããæå¾ã«éãæ¬å¼§ã«ããããã¾ãã ãã®ãã¿ã¼ã³ä¾ã«ã¯ããã¹ãããç¡å¶éã®å復ãå«ã¾ãã¦ããããã®ã ãããããããªãæååã®ãã¿ã¼ã³ãé©ç¨ããéã«æ¬å¼§ä»¥å¤ã®æååã« ä¸åã ãããããããµããã¿ã¼ã³ã使ç¨ãããã¨ãéè¦ã§ããä¾ãã°ã ãã®ãã¿ã¼ã³ãæ¬¡ã®æååã«é©ç¨ããå ´åã (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() "ãããããªã"ã¨ããå¤å®ãéããã«è¡ããã¾ããããããä¸åéãã® ãµããã¿ã¼ã³ã使ç¨ããªãå ´åã対象æååãåå²å¯è½ãª + 㨠* ã®å 復ã®ç¨®é¡ãé常ã«å¤ãã失æãåºåããåã«å ¨ã¦ã確èªããå¿ è¦ããã ããããããã«éå¸¸ã«æéããããã¾ãã å¤ãåå¾ãããµããã¿ã¼ã³ã«è¨å®ãããå¤ã¯ããµããã¿ã¼ã³ã®å¤ãè¨å® ãããæãå¤å´ã®å帰ã®ã¬ãã«ããã®ãã®ã§ããä¸è¨ã®ãã¿ã¼ã³ãä»¥ä¸ ã«ããããããå ´åã (ab(cd)ef) å¤ãåå¾ããæ¬å¼§ã®å¤ã¯"ef"ã§ãããæä¸ä½ã¬ãã«ã®æå¾ã®å¤ã§ãã æ¬¡ã®ããã«æ¬å¼§ã追å ããã¨ã \( ( ( (?>[^()]+) | (?R) )* ) \) åå¾ãããæååã¯ã"ab(cd)ef" 㨠ãªããæä¸ä½ã¬ãã«ã®æ¬å¼§ã®ä¸èº«ã¨ãªãã¾ããä¸ã¤ã®ãã¿ã¼ã³å ã« 15以ä¸ã®åå¾ç¨æ¬å¼§ãããå ´åãPCREã¯å帰ã®éã®ãã¼ã¿ä¿åç¨ã« 追å ã®ã¡ã¢ãªãåå¾ããå¿ è¦ãããã¾ããããã¯ãpcre_malloc ã« ãã確ä¿ãããå¾ã§ pcre_free ã«ããéæ¾ããã¾ããã¡ã¢ãªãå å¾ã§ããªãå ´åãã¡ã¢ãªä¸è¶³ã¨ã©ã¼ãå帰ã®å å´ããåºåããææ®µ ã¯ãªããããæåã®15åã®åå¾ç¨æ¬å¼§ã«ã¤ãã¦ã®ã¿ãã¼ã¿ãä¿åã ãã¾ãã </literallayout> </refsect2> <refsect2 id="regexp.reference.performances"> <title>æ§è½</title> <literallayout> ãã¿ã¼ã³ã®å¹¾ã¤ãã®è¦ç´ ã¯ãä»ã®è¦ç´ ãããããå¹ççã§ãã (a|e|i|o|u) ã®ãããªé¸æè¢ã®éåããã [aeiou] ã®ãããªæå㯠ã©ã¹ã®æ¹ãããå¹ççã§ããä¸è¬ã«ãæ§æãæãç°¡åãªãã®ã ããã¦ãæãå¹çãè¯ãã§ããJeffrey Friedl ã®æ¬ã«ã¯ã æ§è½åä¸ã®ããã«æ£è¦è¡¨ç¾ã®æé©åã«é¢ããå¤ãã®è°è«ã è¨è¿°ããã¦ãã¾ãã ãã¿ã¼ã³ã .* ã§å§ã¾ãã<link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãªãã·ã§ã³ãè¨ å®ããã¦ããå ´åã対象æååã®å§ç«¯ã§ããã¾ã£ã¡ã§ããªãããããã¿ã¼ ã³ã¯PCREã«ããæé»ã®ãã¡ã«ã¢ã³ã«ã¼ä»ãã¨ãªãã¾ãã ãããã<link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> ãè¨å®ããã¦ããªãå ´åãã¡ã¿æå . ãæ¹è¡ã«ãããããªãã®ã§ãPCRE ã¯ãã®æé©åãè¡ãã¾ããã 対象æååãæ¹è¡ãå«ãå ´åããã¿ã¼ã³ã¯æååã®å§ç«¯ããã§ã¯ãªã åæ¹è¡ã®ç´å¾ã®æåãããããããå¯è½æ§ãããã¾ããä¾ãã°ã ãã¿ã¼ã³ (.*) second ã¯ã対象æåå "first\nand second" (ãã ãã\n ã¯æ¹è¡æåã æå³ãã¾ã) ã«ããããã¾ãã æåã«å¤ãåå¾ãããé¨åæååã¯ã"and" ã«ãªãã¾ãããããå ä½ãããã«ã¯ãPCRE ã¯å¯¾è±¡æååã®åæ¹è¡ã®å¾ããããããå度 éå§ããå¿ è¦ãããã¾ãã ãã®ãããªãã¿ã¼ã³ãæ¹è¡ãå«ã¾ãªã対象æååã«ä½¿ç¨ããå ´åã <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link>ãè¨å®ã ãããã¢ã³ã«ã¼ä»ãã§ãããã¨ãé½ã«ç¤ºãããã«ãã¿ã¼ã³ã ^.* ã§éå§ ãããã¨ã«ããæé«ã®æ§è½ãå¾ããã¾ãã ããã«ãããPCRE ã対象æååã®æ¹è¡ãæ¢ããããã§åã¹ã¿ã¼ã ãããã¨ã鲿¢ãã¾ãã ãã¹ãããæªç¢ºå®ã®å復ãæãããã¿ã¼ã³ã«ã¯æ³¨æãè¦ãã¾ãã ãã®ãã¿ã¼ã³ããããããªãæååã«é©ç¨ããå ´åã«ã¯ãå®è¡ã«é·ãæ éãè¦ãã¾ããæ¬¡ã®ãã¿ã¼ã³ãèãã¦ã¿ã¾ãããã (a+)* ããã¯ã33éãã®ç°ãªã£ãæ¹æ³ã§ã"aaaa"ã«ããããã¾ãããã®æ°ã¯ã æååãé·ããªãã«ã¤ãã¦æ¥æ¿ã«å¢å¤§ãã¾ãã(* å復ã¯ã0ã1ã2ã3ã 4åããããã0以å¤ã®åã ã®ã±ã¼ã¹ã§ã+å復ã¯ç°ãªã£ãåæ°åãããã ã¾ã) ãã¿ã¼ã³ã®æ®ãã«ãããå ¨ä½ã失æãããããªãã¿ã¼ã³ã§ããå ´ åãPCREã¯åºæ¬çã«å ¨ã¦ã®å¯è½æ§ããã鏿è¢ã調ã¹ããããé常ã«é· ãæéããããã¾ãã æ¬¡ã®ããã«æåãªãã©ã«ãå¾ã«ãããããªããç°¡åãªå ´åã«ã¯æé©åã å¯è½ã§ãã (a+)*b æ¨æºã®ãããæé ã«çæããåã«ãPCREã¯å¯¾è±¡æååã®å¾ã®æ¹ã«"b"ãã ããã©ããã調ã¹ã¾ããããããªãå ´åã«ã¯ãç´ã¡ã«ãããã¯å¤±æãã¾ ãããããããªãã©ã«ãå¾ã«ãªãå ´åã«ã¯ããã®æé©åã使ç¨ããã㨠ã¯ã§ãã¾ããã以ä¸ã®ãã¿ã¼ã³ã¨ä¸ã®ãã¿ã¼ã³ã®åä½ã®å·®ç°ãæ¯è¼ã㦠ã¿ã¾ãããã (a+)*\d åè ã¯ãå ¨ä½ã "a" æåã§ããè¡ã«é©ç¨ãããå ´åã«ã»ã¼ç¬éçã«å¤±æ ã¨å¤å®ãã¾ãã䏿¹ãå¾è ã§ã¯ãããã20æåããé·ãæååã§ã¯ã㪠ãã®æéããããã¾ãã </literallayout> </refsect2> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->