下面是我的字符串。这里我使用preg_replace
$marr = '<ul><li class="test_item test-item-28 current_test_item">'.
'<a href="test/">Home</a></li><li class="test_item test-item-30">'.
'<a href="test/about-us/">About Us</a></li>'.
'<li class="test_item test-item-45"><a href="test/products/">Products</a></li>'.
'<li class="test_item test-item-47"><a href="test/latest-news/">Latest News</a></li>'.
'<li class="test_item test-item-49"><a href="test/contact-us/">Contact Us</a></li>'.
'</ul>';
echo preg_replace('/<li class="test_item test-item-45">(.*)<\/li>/',
'test',
$marr);
使用它时,它会替换给定的字符串。但缺少最新的新闻和联系菜单。在输出中,最后2个李丢失了。这有什么不对?
请帮帮我。感谢
答案 0 :(得分:1)
您应该使用(.*?)
echo preg_replace('/<li class="test_item test-item-45">(.*?)<\/li>/', 'test', $marr);
为了在第一个</li>
发生后中断匹配