ホームページ バックエンド開発 PHPチュートリアル PHP_PHP チュートリアルでの Ereg 正規表現の分析

PHP_PHP チュートリアルでの Ereg 正規表現の分析

Jul 15, 2016 pm 01:26 PM
perl php 互換性がある 私たち 通常 表現

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 class=alt><SPAN class=vars>$start</SPAN><SPAN> = time();   </SPAN><LI><SPAN class=keyword>for</SPAN><SPAN>(</SPAN><SPAN class=vars>$i</SPAN><SPAN>=1;</SPAN><SPAN class=vars>$i</SPAN><SPAN><=100000;</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><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 class=alt><SPAN>}   </SPAN><LI><SPAN class=vars>$ended</SPAN><SPAN> = time()-</SPAN><SPAN class=vars>$start</SPAN><SPAN>;   </SPAN><LI class=alt><SPAN class=func>echo</SPAN><SPAN> </SPAN><SPAN class=vars>$ended</SPAN><SPAN>;   </SPAN><LI><SPAN class=func>echo</SPAN><SPAN> "   </SPAN><LI class=alt><SPAN class=func>ereg_replace</SPAN><SPAN> used time:";   </SPAN><LI><SPAN class=vars>$start</SPAN><SPAN> = time();   </SPAN><LI class=alt><SPAN class=keyword>for</SPAN><SPAN>(</SPAN><SPAN class=vars>$i</SPAN><SPAN>=1;</SPAN><SPAN class=vars>$i</SPAN><SPAN><=100000;</SPAN><SPAN class=vars>$i</SPAN><SPAN>++) {   </SPAN><LI><SPAN class=vars>$str</SPAN><SPAN> = </SPAN><SPAN class=string>"ssssssssssssssssssssssssssss"</SPAN><SPAN>;   </SPAN><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><SPAN>}   </SPAN><LI class=alt><SPAN class=vars>$ended</SPAN><SPAN> = time()-</SPAN><SPAN class=vars>$start</SPAN><SPAN>;   </SPAN><LI><SPAN class=func>echo</SPAN><SPAN> </SPAN><SPAN class=vars>$ended</SPAN><SPAN>;   </SPAN><LI class=alt><SPAN class=func>echo</SPAN><SPAN> "   </SPAN><LI><SPAN class=func>str_replace</SPAN><SPAN> used time:";   </SPAN><LI class=alt><SPAN class=vars>$start</SPAN><SPAN> = time();   </SPAN><LI><SPAN class=keyword>for</SPAN><SPAN>(</SPAN><SPAN class=vars>$i</SPAN><SPAN>=1;</SPAN><SPAN class=vars>$i</SPAN><SPAN><=100000;</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><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 class=alt><SPAN>}   </SPAN><LI><SPAN class=vars>$ended</SPAN><SPAN> = time()-</SPAN><SPAN class=vars>$start</SPAN><SPAN>;   </SPAN><LI class=alt><SPAN class=func>echo</SPAN><SPAN> </SPAN><SPAN class=vars>$ended</SPAN><SPAN>;   </SPAN><LI><SPAN>?>  </span></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 正規表現を理解して学習するのに役立つことを願っています。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446583.html技術記事 Perl が PHP の正規表現と互換性があることはわかっていますが、Ereg の正規表現について何を知っておく必要があるでしょうか?ここでは、Perl 互換の正規表現と Perl/Ereg の違いを分析します...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

See all articles