Это почти верно. Но +
дает количественную оценку только a
. Вы хотели использовать [^>]+
в этой позиции:
preg_replace('#<a[^>]+class="rsswidget"[^>]*>.*?</a>#is',
Чтобы избежать любых регулярных выражений для голосования по-любому, это будет альтернатива QueryPath :
return qp($html)->find("a.rsswidget")->remove()->writeHTML();