>php教程 >php手册 >PHP正则替换preg

PHP正则替换preg

WBOY
WBOY원래의
2016-06-06 19:57:28966검색

有个问题,怎么把一个字符串中特定的字符串替换掉。举例:把字符串:abc fdab ertDe fda Abc fdd 中abc替换掉,其中abc不区分大小写,替换之后字符串为:fdab ertDe fda fdd 当时立马想到两种策略preg_replace正则替换,preg_split分割合并。哎哎,可当时没

    有个问题,怎么把一个字符串中特定的字符串替换掉。举例:把字符串: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来规避正则,偏离了别人的目的,也不是种好方法!

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

PHP正则替换preg

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.