> 백엔드 개발 > PHP 튜토리얼 > 请教关于preg_replace替换的问题

请教关于preg_replace替换的问题

WBOY
풀어 주다: 2016-06-23 14:39:58
원래의
1010명이 탐색했습니다.

字符串  $str = 'aa__cc__ee';
企图使用这样的语句:  preg_replace('/_{2}?/', array('bb', 'dd'), $str);
替换成  'aabbccddee'
但全部换成了bb,我已经在表达式中加了 ? 号表示非贪婪,希望第一次匹配替换完之后不要再把第二个 __ 双下划线替换了,但发现这样不成功,请问怎么办才好?是不是我对贪婪模式理解错误了呢?


回复讨论(解决方案)

$str = 'aa__cc__ee';$a = array('bb', 'dd');echo preg_replace('/_{2}?/e', 'array_shift($a)', $str);
로그인 후 복사
aabbccddee
不过php5.5已经取消了修饰符“e”,所以还是前瞻点,以免以后改起来麻烦
$str = 'aa__cc__ee';$a = array('bb', 'dd');echo preg_replace_callback('/_{2}?/', function($r) use (&$a) { return array_shift($a); }, $str);
로그인 후 복사

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿