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

PHP正則替換preg_replace

編輯:關於PHP編程

有個問題,怎麼把一個字符串中特定的字符串替換掉。舉例:把字符串:abc fdab ertDe fda Abc fdd 中abc替換掉,其中abc不區分大小寫,替換之後字符串為:fdab ertDe fda fdd

當時立馬想到兩種策略preg_replace正則替換,preg_split分割合並。哎哎,可當時沒有個手冊在手,總是沒有勇氣嘗試,這裡show下代碼吧,看來以後真要留心了。上代碼吧:


[php]
<?php 
$str = 'abc fdab ertDe fda Abc fdd '; 
$pat = '/abc/i'; 
$rtn = preg_replace($pat, '', $str, -1); 
echo 'orig:', $str, '<br/>'; 
echo 'dest:', $rtn;   

<?php
$str = 'abc fdab ertDe fda Abc fdd ';
$pat = '/abc/i';
$rtn = preg_replace($pat, '', $str, -1);
echo 'orig:', $str, '<br/>';
echo 'dest:', $rtn;  請點擊preg_replace 查看函數的用法。再showshowpreg_split吧:


[php]
<?php 
$str = 'abc fdab ertDe fda Abc fdd '; 
$pat = '/abc/i'; 
$arr = preg_split($pat, $str); 
$rtn = implode('', $arr);                                                                           
echo 'orig:', $str, '<br/>'; 
echo 'dest:', $rtn; 

<?php
$str = 'abc fdab ertDe fda Abc fdd ';
$pat = '/abc/i';
$arr = preg_split($pat, $str);
$rtn = implode('', $arr);                                                                         
echo 'orig:', $str, '<br/>';
echo 'dest:', $rtn;
呵呵,這種方式雖然很笨,但也是種方式啊,不過歸根結底還是正則的寫法。有沒有另外一種方式呢,幸虧手冊在手,功夫不負有心人,馬上有另外一種笨方法:


[plain]
<?php 
$str = 'abc fdab ertDe fda Abc fdd '; 
$tran = array('abc' => '', 'Abc' => ''); 
$rtn = strtr($str, $tran); 
echo 'orig:', $str, '<br/>'; 
echo 'dest:', $rtn; 

<?php
$str = 'abc fdab ertDe fda Abc fdd ';
$tran = array('abc' => '', 'Abc' => '');
$rtn = strtr($str, $tran);
echo 'orig:', $str, '<br/>';
echo 'dest:', $rtn;

這種方式有些取巧,主要使用strtr來規避正則,偏離了別人的目的,也不是種好方法!

這次,關於正則的問題是該好好反思,雖然正則學了很多,也寫了些。可總是用的時候看手冊,不停地重試重寫,不能了然於胸。心中對其有些怯意,以後應該多寫多練,真正做到熟悉這項基本技能。

 

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