Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP正则替换preg_replace_PHP教程

PHP正则替换preg_replace_PHP教程

WBOY
WBOYasal
2016-07-14 10:09:52908semak imbas

有个问题,怎么把一个字符串中特定的字符串替换掉。举例:把字符串:abc fdab ertDe fda Abc fdd 中abc替换掉,其中abc不区分大小写,替换之后字符串为:fdab ertDe fda fdd

当时立马想到两种策略preg_replace正则替换,preg_split分割合并。哎哎,可当时没有个手册在手,总是没有勇气尝试,这里show下代码吧,看来以后真要留心了。上代码吧:


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

$str = 'abc fdab ertDe fda Abc fdd ';
$pat = '/abc/i';
$rtn = preg_replace($pat, '', $str, -1);
echo 'orig:', $str, '
';
echo 'dest:', $rtn;  请点击preg_replace 查看函数的用法。再showshowpreg_split吧:


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

$str = 'abc fdab ertDe fda Abc fdd ';
$pat = '/abc/i';
$arr = preg_split($pat, $str);
$rtn = implode('', $arr);                                                                         
echo 'orig:', $str, '
';
echo 'dest:', $rtn;
呵呵,这种方式虽然很笨,但也是种方式啊,不过归根结底还是正则的写法。有没有另外一种方式呢,幸亏手册在手,功夫不负有心人,马上有另外一种笨方法:


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

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

这种方式有些取巧,主要使用strtr来规避正则,偏离了别人的目的,也不是种好方法!

这次,关于正则的问题是该好好反思,虽然正则学了很多,也写了些。可总是用的时候看手册,不停地重试重写,不能了然于胸。心中对其有些怯意,以后应该多写多练,真正做到熟悉这项基本技能。

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477587.htmlTechArticle有个问题,怎么把一个字符串中特定的字符串替换掉。举例:把字符串:abc fdab ertDe fda Abc fdd 中abc替换掉,其中abc不区分大小写,替换之后...
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn