程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 辨析PHP中Ereg正則表達式

辨析PHP中Ereg正則表達式

編輯:關於PHP編程

我們知道在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實例:

  1. <?php  
  2. echo "Preg_replace used time:";   
  3. $start = time();   
  4. for($i=1;$i<=100000;$i++) {   
  5. $str = "ssssssssssssssssssssssssssss";   
  6. preg_replace("/s/","",$str);   
  7. }   
  8. $ended = time()-$start;   
  9. echo $ended;   
  10. echo "   
  11. ereg_replace used time:";   
  12. $start = time();   
  13. for($i=1;$i<=100000;$i++) {   
  14. $str = "ssssssssssssssssssssssssssss";   
  15. ereg_replace("s","",$str);   
  16. }   
  17. $ended = time()-$start;   
  18. echo $ended;   
  19. echo "   
  20. str_replace used time:";   
  21. $start = time();   
  22. for($i=1;$i<=100000;$i++) {   
  23. $str = "sssssssssssssssssssssssssssss";   
  24. str_replace("s","",$str);   
  25. }   
  26. $ended = time()-$start;   
  27. echo $ended;   
  28. ?>  

PHP中Ereg正則表達式實例結果:

  1. Preg_replace used time:5   
  2. ereg_replace used time:15   
  3. str_replace used time:2  

str_replace因為不需要匹配所以速度非常快,而preg_replace的速度比ereg_replace要快上不少。

PHP中Ereg正則表達式的相關內容就向你介紹到這裡,希望對你了解和學習PHP中Ereg正則表達式有所幫助。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved