1

我有这个字符串:

<li id="1">3431233</li>
<li id="2">fsdfdsfsdfdsfdsf</li>
<li id="3">abc</li>
<li id="4"> fdsf2342343</li>
<li id="5">123</li>

我只想替换那些包含 abc 或 123 的行(在本例中为第 3 和第 5)。我的问题是这个正则表达式不起作用:

^<li>abc<\/li>

它取代了所有的 lis。如何仅将替换限制在某一行?li 因行而异,而且是动态的,我不知道它们的外观(它们可能具有哪些类和 id。)

谢谢!

4

3 回答 3

3

尝试

^<li>(abc|123|)<\/li>

我在这里测试了它并且它有效

于 2013-05-06T07:33:42.710 回答
2

只需使用str_replace

<?php
  str_replace("<li>abc</li>"," ", $yourstring);
  str_replace("<li>123</li>"," ", $yourstring);

编辑:试试这个:

    '/<li(.*)>(abc|123)<\/li>/';
于 2013-05-06T07:32:44.740 回答
2

在这里试试

^<li id="[0-9]">(abc|123|)<\/li>

[0-9]+如果 id 增长则使用

^<li id="[0-9]+">(abc|123|)<\/li>
于 2013-05-06T07:41:37.093 回答