Php 从字符串中查找并替换特定数字
如果有以下字符串(来自xml文件,也有空格):Php 从字符串中查找并替换特定数字,php,regex,preg-replace,Php,Regex,Preg Replace,如果有以下字符串(来自xml文件,也有空格): $string='1!' '; 你怎么能找到每一次 <wp:meta_value><![CDATA[xxx]]></wp:meta_value> 但只有在紧接着: <wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key> 然后将该行中的数字替换为特定的数字 因此,最后字符串如下所示: $string
$string='1!'
';
你怎么能找到每一次
<wp:meta_value><![CDATA[xxx]]></wp:meta_value>
但只有在紧接着:
<wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key>
然后将该行中的数字替换为特定的数字
因此,最后字符串如下所示:
$string = '<wp:postmeta>
<wp:meta_key><![CDATA[some_field]]></wp:meta_key>
<wp:meta_value><![CDATA[20]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key>
<wp:meta_value><![CDATA[123456]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key>
<wp:meta_value><![CDATA[123456]]></wp:meta_value>
</wp:postmeta>
</item>';
$string='1!'
';
您可以使用preg\u replace
。确保替换的是第1组的比赛,而不是整个比赛,但会执行您需要的操作
(?)\s*
认为你因为没有共享任何代码而遭到否决。你试过什么吗?也许加载DOM和迭代?
$string = '<wp:postmeta>
<wp:meta_key><![CDATA[some_field]]></wp:meta_key>
<wp:meta_value><![CDATA[20]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key>
<wp:meta_value><![CDATA[123456]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key>
<wp:meta_value><![CDATA[123456]]></wp:meta_value>
</wp:postmeta>
</item>';