0

下面是我的字符串。在这里我使用 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 li 丢失了。这里有什么问题?

请帮我。谢谢

4

1 回答 1

1

你应该使用(.*?)

echo preg_replace('/<li class="test_item test-item-45">(.*?)<\/li>/', 'test', $marr);

为了在第一次</li>发生后打破比赛

于 2013-09-06T07:27:10.547 回答