脚本宝典收集整理的这篇文章主要介绍了PHP preg_replace – 在结果中包含模式/完整主题,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
locale("Sendx","Send") locale("System","System")
应成为:
locale("Sendx","Subsub") locale("System","NewSys")
$myseArchword = "System"; #changes in a loop $myreplaceword = "Newsys"; #also changes in the loop $oneline = str_replace($mysearchword,$myreplaceword,$oneline);
但结果看起来像
locale("Sendx","53ND") locale("Newsys","Newsys") #PRoblem wITh the doubled word
当然,系统两次都被取代了.所以我决定使用preg_replace
$pattern = '/locale\\(["|\']([^"\']*)["|\'],["|\']([^"\']*)["|\']\\)/'; $replacement = '${1},Newsys'; $subject = 'locale("System","System")'; echo preg_replace($pattern,$replacement,$subject,-1 );
但现在几乎没有任何东西丢失,因为只返回括号中的单词而我不知道如何包含该模式或返回替换的$subject.
$pattern更改,所以我无法将“locale(…”写入$replacement /我不知何故必须返回替换模式…
System,Newsys # No idea how to combine $replacement with $pattern...
你能帮我找到合适的结果吗?
$input = 'locale("Sendx","Send")'; $output = preg_replace('/,"(.*?)"/',',"Subsub"',$input); echo $output; echo "\n"; $input = 'locale("System","System")'; $output = preg_replace('/,"Newsys"',$input); echo $output;
输出:
locale("Sendx","Newsys")
模式/,“(.*?)”/在逗号之后搜索双引号之间的单词并替换为“NEW_WORD”
使用此模式,您可以轻松地在循环中替换它们:
$input = array( 'locale("Sendx","Send")' => 'Subsub','locale("System","System")' => 'Newsys' ); foreach($input as $string => $replacement) { $output = preg_replace('/,"' . $replacement . '"',$string); echo $output. PHP_EOL; }
以上是脚本宝典为你收集整理的PHP preg_replace – 在结果中包含模式/完整主题全部内容,希望文章能够帮你解决PHP preg_replace – 在结果中包含模式/完整主题所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。