Ответ Кайла хорош, но чтобы не печатать одно и то же значение несколько раз, как вы сказали, вам нужно немного изменить логику. Сначала вы анализируете и добавляете все найденные совпадения в список, а затем просматриваете список со всеми совпадениями и распечатываете их.
Еще одна вещь, которую вам, возможно, придется рассмотреть, это следующая проблема:
<div class=col>
<div class=col>
<span/>
</div>
</div>
Используя список вместо печати сразу, вы можете обрабатывать любые совпадения, идентичные любым существующим записям
В приведенном выше примере HTML вы можете увидеть, как диапазон может быть добавлен дважды с тем, как вы находите совпадения в ответе, предложенном Kyle. Все дело в том, чтобы убедиться, что вы создали логику, которая найдет только те совпадения, которые вам нужны. То, как вы это делаете, часто / всегда зависит от того, как отформатирован HTML, но также важно быть креативным!
Удачи.