PHP 正規表現関数ライブラリとは何ですか?ここでは、PHP 正規表現関数ライブラリ (POSIX 拡張) 貪欲マッチングについて説明します。条件付きサブパターンやその他の多くの POSIX 拡張正規表現構文ではサポートされていない機能に注意する必要があります。
PHP 正規表現関数ライブラリを学習する際の警告:
このタイプの正規表現はバイナリ モードでは安全に使用できません。 PCRE ライブラリはそれを行います。正規表現は、PHP で複雑な文字列操作を実行するために使用されます。正規表現をサポートする関数は次のとおりです:
◆ereg()
◆ereg_replace()
◆eregi()
◆eregi_replace()
◆split()
◆spliti()
これらの関数が受け入れられます最初の引数としての正規表現文字列。 PHP は、POSIX 1003.3 で定義された POSIX 拡張正規表現を使用します。 POSIX 正規表現の完全な説明は、PHP ディストリビューションの regex ディレクトリに含まれるマニュアル ページにあります。 man /usr/local/src/regex/regex.7 のようなコマンドで読み取ることができます。
要件: この拡張モジュールのサポートを追加するために外部ライブラリ ファイルは必要ありません。
インストールに関する警告: 何をしようとしているのか理解していない限り、TYPE を変更しないでください。
正規表現のサポートを有効にするには、PHP の設定時に --with-regex[=TYPE] を追加します。 TYPE には、system、apache、または php のいずれかを指定できます。デフォルトではphpが使用されます。
Windows バージョンの PHP には、この拡張モジュールのサポートがすでに組み込まれています。これらの関数を使用するために追加の拡張ライブラリをロードする必要はありません。具体的な関連操作を見てみましょう:
◆実行時設定: この拡張モジュールは設定命令を定義しません。
◆リソースタイプ: この拡張モジュールはリソースタイプを定義しません。
◆定義済み定数: この拡張モジュールでは定数は定義されていません。
PHP 正規表現関数の例:
<ol class="dp-c"><li class="alt"><span><span><?php </SPAN></SPAN><LI><SPAN class=comment>// 如果在 $string 中任何地方找到 "abc" 则返回 &true; </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=func>ereg</SPAN><SPAN> (</SPAN><SPAN class=string>"abc"</SPAN><SPAN>, </SPAN><SPAN class=vars>$string</SPAN><SPAN>); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// 如果 $string 以 "abc" 开头则返回 &true; </SPAN><SPAN> </SPAN><LI><SPAN class=func>ereg</SPAN><SPAN> (</SPAN><SPAN class=string>"^abc"</SPAN><SPAN>, </SPAN><SPAN class=vars>$string</SPAN><SPAN>); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// 如果 $string 以 "abc" 结尾则返回 &true; </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=func>ereg</SPAN><SPAN> (</SPAN><SPAN class=string>"abc$"</SPAN><SPAN>, </SPAN><SPAN class=vars>$string</SPAN><SPAN>); </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN class=comment>// 如果用户浏览器是 Netscape 2,3 或 MSIE 3 则返回 &true; </SPAN><SPAN> </SPAN><LI><SPAN class=func>eregi</SPAN><SPAN> (</SPAN><SPAN class=string>"(ozilla.[23]|MSIE.3)"</SPAN><SPAN>, </SPAN><SPAN class=vars>$HTTP_USER_AGENT</SPAN><SPAN>); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// 将三个空格分隔的单词放入 $regs[1],$regs[2] 和 $regs[3] 中 </SPAN><SPAN> </SPAN><LI class=alt><SPAN class=func>ereg</SPAN><SPAN> ("([[:alnum:]]+) ([[:alnum:]]+) </SPAN><LI><SPAN> ([[:alnum:]]+)", </SPAN><SPAN class=vars>$string</SPAN><SPAN>,</SPAN><SPAN class=vars>$regs</SPAN><SPAN>); </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN class=comment>// 将 <br /> 标记放到 $string 开头 </span><span> </span><li class="alt"> <span class="vars">$string</span><span> = </span><span class="func">ereg_replace</span><span> (</span><span class="string">"^"</span><span>, </span><span class="string">"<br />"</span><span>, </span><span class="vars">$string</span><span>); </span> </li> <li><span> </span></li> <li class="alt"> <span class="comment">// 将 <br /> 标记放到 $string 结尾 </span><span> </span> </li> <li> <span class="vars">$string</span><span> = </span><span class="func">ereg_replace</span><span> (</span><span class="string">"$"</span><span>, </span><span class="string">"<br />"</span><span>, </span><span class="vars">$string</span><span>); </span> </li> <li class="alt"><span> </span></li> <li> <span class="comment">// 删除 $string 中的所有换行符 </span><span> </span> </li> <li class="alt"> <span class="vars">$string</span><span> = </span><span class="func">ereg_replace</span><span> (</span><span class="string">"n"</span><span>, </span><span class="string">""</span><span>, </span><span class="vars">$string</span><span>); </span> </li> <li><span>?> </span></li></span></li></ol>
これは、PHP 正規表現関数の理解と学習に役立つことを願っています。