Hallö markus!
So soll bspw. ein <br /> nach einem </li> vermieden werden:
$text = preg_replace('/</li>\n/','</li>',$text);
Kann es sein, dass dein Zeilenumbruch durch "\r\n" dargestellt wird? Versuchs doch mal mit Suche nach "/</li>\s/"!
Oder ist dein Zeilenumbruch vielleicht schon zu HTML umgewandelt, z. B. per nl2br()?
Grüße aus Leipzig
willie