ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでの Ereg 正規表現の分析
Perl が PHP の正規表現と互換性があることはわかっていますが、Ereg の正規表現について何を知っておく必要があるでしょうか?ここでは、Perl 互換の正規表現と Perl/Ereg の違いの分析を通じて Ereg 正規表現を紹介します。お役に立てば幸いです。
「Perl 互換正規表現」と呼ばれていますが、Perl の正規表現と比較すると、PHP にはまだいくつかの違いがあります。たとえば、Perl では修飾子「G」はすべて一致を意味しますが、PHP ではこれをサポートしていません。サポート。
PHPにおけるEreg正規表現の解析について:
eregシリーズの関数との違いもありますが、eregもPHPで提供されている正規表現関数ですが、pregと比べるとかなり弱いです。
1. 区切り文字と修飾子は必須ではなく、ereg では使用できないため、ereg の機能は preg よりもはるかに弱いです。
2. 「.」について: 正規表現のドットは通常、改行文字を除くすべての文字を指しますが、ereg の「.」は改行文字を含む任意の文字を指します。 preg に「.」に改行文字を含めたい場合は、修飾子に「s」を追加します。
3. ereg はデフォルトで貪欲モードを使用するため、多くの置換やマッチングに問題が生じます。
4. 速度: これは多くの人が懸念している質問かもしれませんが、preg の強力な機能は速度と引き換えですか?心配しないでください、preg は ereg よりもはるかに高速です。著者はプログラム テストを行いました:
PHP での Ereg 正規表現時間テストの例:
<ol class="dp-c"><li class="alt"><span><span><?php </SPAN></span><li> <span class="func">echo</span><span> </span><span class="string">"Preg_replace used time:"</span><span>; </span> </li> <li class="alt"> <span class="vars">$start</span><span> = time(); </span> </li> <li> <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=1;</span><span class="vars">$i</span><span><span class="vars">$i</span><span>++) { </span><li class="alt"> <span class="vars">$str</span><span> = </span><span class="string">"ssssssssssssssssssssssssssss"</span><span>; </span> </li> <li> <span>preg_replace(</span><span class="string">"/s/"</span><span>,</span><span class="string">""</span><span>,</span><span class="vars">$str</span><span>); </span> </li> <li class="alt"><span>} </span></li> <li> <span class="vars">$ended</span><span> = time()-</span><span class="vars">$start</span><span>; </span> </li> <li class="alt"> <span class="func">echo</span><span> </span><span class="vars">$ended</span><span>; </span> </li> <li> <span class="func">echo</span><span> " </span> </li> <li class="alt"> <span class="func">ereg_replace</span><span> used time:"; </span> </li> <li> <span class="vars">$start</span><span> = time(); </span> </li> <li class="alt"> <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=1;</span><span class="vars">$i</span><span><span class="vars">$i</span><span>++) { </span><li> <span class="vars">$str</span><span> = </span><span class="string">"ssssssssssssssssssssssssssss"</span><span>; </span> </li> <li class="alt"> <span class="func">ereg_replace</span><span>(</span><span class="string">"s"</span><span>,</span><span class="string">""</span><span>,</span><span class="vars">$str</span><span>); </span> </li> <li><span>} </span></li> <li class="alt"> <span class="vars">$ended</span><span> = time()-</span><span class="vars">$start</span><span>; </span> </li> <li> <span class="func">echo</span><span> </span><span class="vars">$ended</span><span>; </span> </li> <li class="alt"> <span class="func">echo</span><span> " </span> </li> <li> <span class="func">str_replace</span><span> used time:"; </span> </li> <li class="alt"> <span class="vars">$start</span><span> = time(); </span> </li> <li> <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=1;</span><span class="vars">$i</span><span><span class="vars">$i</span><span>++) { </span><li class="alt"> <span class="vars">$str</span><span> = </span><span class="string">"sssssssssssssssssssssssssssss"</span><span>; </span> </li> <li> <span class="func">str_replace</span><span>(</span><span class="string">"s"</span><span>,</span><span class="string">""</span><span>,</span><span class="vars">$str</span><span>); </span> </li> <li class="alt"><span>} </span></li> <li> <span class="vars">$ended</span><span> = time()-</span><span class="vars">$start</span><span>; </span> </li> <li class="alt"> <span class="func">echo</span><span> </span><span class="vars">$ended</span><span>; </span> </li> <li><span>?> </span></li></span> </li></span> </li></span> </li></span></li></ol>
PHP での Ereg 正規表現の結果の例:
<ol class="dp-c"> <li class="alt"><span><span>Preg_replace used time:5 </span></span></li> <li> <span class="func">ereg_replace</span><span> used time:15 </span> </li> <li class="alt"> <span class="func">str_replace</span><span> used time:2 </span> </li> </ol>
str_replaceマッチングを必要としないため非常に高速であり、preg_replace は ereg_replace よりもはるかに高速です。
ここでは、PHP の Ereg 正規表現の関連コンテンツを紹介します。PHP の Ereg 正規表現を理解して学習するのに役立つことを願っています。