php正则如何替换第N次出现的内容

上大人
  • 324

例:

<div>fsaf</div>
<div>cxv</div>
<div>fdgsd</div>
<div>dasd</div>
----------
<div>fsaf</div>
<div>我要替换这条内容</div>
<div>fdgsd</div>
<div>dasd</div>

简化后的例子:

$str = '55555';
$reg = '/5/';

需求结果替换第2次出现的字符5x555

不好意思表达的不是很清楚.
我的目的是想要替换正则第N次匹配的结果.

回复
阅读 3.7k
2 个回答

可以考虑全部匹出来然后再取下标为1的?

上官元恒
  • 8.6k
<?php
$str = '55555';
$index = 1;
echo preg_replace('/\d{'.$index.'}/','$0x',$str,1);
//通用型
echo preg_replace('/\S{'.$index.'}/','$0x',$str,1);
?>
宣传栏