当</li> <li>位于<span style =“color:green”>和</span>之间时,用</li> <li style =“color:green”>替换<li>

时间:2015-11-07 05:55:50

标签: php regex

我的输入字符串可以包含多次带有绿色的span标签,其样式标签很多次。我希望只要在开始和结束范围标签之间存在li标签,它的样式应该是颜色:绿色。 我的意见:

  This is the <span style="color:green"> whatever <li> input </li> anystring</span>. 
  This is second <span style="color:green"> whatever2 <li> input2 </li> any string2</span>. 

在我的输出中,我希望所有li标签都应替换为:

 <li style="color:green">

输出应为:

  This is the <span style="color:green"> whatever <li style="color:green"> input </li> anystring</span>. 
  This is second <span style="color:green"> whatever2 <li style="color:green"> input2 </li> any string2</span>. 

我尝试通过preg_replace来完成它,但它不能按照我想要的方式工作。我的符号肯定存在一些问题。

1 个答案:

答案 0 :(得分:1)

您可以使用:

搜索:(<span style="color:green">.*?)<li>([^<>]+</li>.*?</span>)

替换为:$1<li style="color:green">$2

https://regex101.com/r/dZ2mL4/1