PHP正则替换preg_replace
Jun 13, 2016 am 10:55 AM
有个问题,怎么把一个字符串中特定的字符串替换掉。举例:把字符串: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来规避正则,偏离了别人的目的,也不是种好方法!
这次,关于正则的问题是该好好反思,虽然正则学了很多,也写了些。可总是用的时候看手册,不停地重试重写,不能了然于胸。心中对其有些怯意,以后应该多写多练,真正做到熟悉这项基本技能。

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

나이키 신발의 정품과 가짜 신발 상자를 식별하는 방법(쉽게 식별하는 하나의 트릭 마스터)
