我們知道在PHP中Perl兼容正則表達式,那麼對於Ereg正則表達式我們需要掌握什麼呢?這裡我們通過Perl兼容正則表達式和Perl/Ereg的區別分析來向你介紹Ereg正則表達式,希望對你有所幫助。
雖然叫做“Perl兼容正則表達式”,但是和Perl的正則表達式相比,PHP的還是由一些不同,比如修飾符“G”在Perl裡面代表全部匹配,但是在PHP中沒有加入對這個修飾符的支持。
關於PHP中Ereg正則表達式的辨析:
還有就是和ereg系列函數的區別,ereg也是PHP中提供的正則表達式函數,不過和preg相比,要弱上很多。
1、ereg裡面是不需要也不能使用分隔符和修飾符的,所以ereg的功能比preg要弱上不少。
2、關於".":點在正則裡面一般是除了換行符以外的全部字符,但是在ereg裡面的"."是任意字符,即包括換行符!如果在preg裡面希望"."能夠包括換行符,可以在修飾符中加上"s"。
3、ereg默認使用貪婪模式,並且不能修改,這個給很多替換和匹配帶來麻煩。
4、速度:這個或許是很多人關心的問題,會不會preg功能強大是以速度來換取的?不用擔心,preg的速度要遠遠比ereg快,筆者做了一個程序測試:
PHP中Ereg正則表達式time test實例:
- <?php
- echo "Preg_replace used time:";
- $start = time();
- for($i=1;$i<=100000;$i++) {
- $str = "ssssssssssssssssssssssssssss";
- preg_replace("/s/","",$str);
- }
- $ended = time()-$start;
- echo $ended;
- echo "
- ereg_replace used time:";
- $start = time();
- for($i=1;$i<=100000;$i++) {
- $str = "ssssssssssssssssssssssssssss";
- ereg_replace("s","",$str);
- }
- $ended = time()-$start;
- echo $ended;
- echo "
- str_replace used time:";
- $start = time();
- for($i=1;$i<=100000;$i++) {
- $str = "sssssssssssssssssssssssssssss";
- str_replace("s","",$str);
- }
- $ended = time()-$start;
- echo $ended;
- ?>
PHP中Ereg正則表達式實例結果:
- Preg_replace used time:5
- ereg_replace used time:15
- str_replace used time:2
str_replace因為不需要匹配所以速度非常快,而preg_replace的速度比ereg_replace要快上不少。
PHP中Ereg正則表達式的相關內容就向你介紹到這裡,希望對你了解和學習PHP中Ereg正則表達式有所幫助。