Доработать регулярное выражение на PHP для preg_match_all

500 руб. за проект
14 ноября 2020, 03:51 • 8 откликов • 61 просмотр
Имеется текст с вкраплениями HTML тегов. Необходимо разбить его на слова с помощью: preg_match_all

В слове могут буть русские и англ буквы, цифры 0346 но подряд не более 1. Слово может так-же начинаться с цифры 0346 или заканчиваться.
В слове может быть тире -. Но не более одного. В начале слова и конце слова тире быть не должно, если оно там есть то слово берется без тире.
HTML Теги (выражения которые имеют вид <слово ... > или </слово>) должны игнорироваться, слова могут браться только вне тегов или внутри тегов, но сами теги не могут быть словами. Текст может быть и без тегов.

Текущая регулярка: $pattern = '/[А-Яа-яЁёA-Za-z\-]+[0346][А-Яа-яЁёA-Za-z\-]+|[0346]{0,1}[А-Яа-яЁёA-Za-z\-]{2,}[0346]{0,1}|[А-Яа-яЁёA-Za-z\-]{2,}/u';
в принципе с основной задачей справляется, но выдирает и слова тегов тоже (div, class, src...), чего быть не должно.

Пример текста:

<div class='sprite'> <img align='top' SRC='illustrations/1357/70_3.png'> <span class='RGB15'>LОSТ CAVЕS </span><span class='RGB0'>
<img align='top' SRC='illustrations/1357/70_4.png'> </span><span class='RGB15'>AND </span><span class='RGB0'>
<img align='top' SRC='illustrations/1357/70_5.png'> </span><span class='RGB15'> ТНЕ DООМ ТОМВ </span><span class='RGB0'>
<img align='top' SRC='illustrations/1357/70_6.png'>
<img align='top' SRC='illustrations/1357/70_7.png'> </span><span class='RGB15'>128КВ ОNLY </span><span class='RGB0'>
<img align='top' SRC='illustrations/1357/70_8.png'>
<img align='top' SRC='illustrations/1357/70_9.png'> </span><span class='RGB13'>ТAG CОМРUТЕR GAМЕS </span><span class='RGB0'>
<img align='top' SRC='illustrations/1357/70_10.png'> </span><span class='RGB13'>РLAYЕRS РRЕМIЕR'89 </span><span class='RGB0'>
</div>

</span><span class='RGB14'>DISК VЕRSIОN : DIAМОND SОFТWARЕ </span><span class='RGB0'>
</span><span class='RGB10'>РА3МЕР</span><span class='RGB0'> </span><span class='RGB10'>: 108 CЕКТОРОВ </span><span class='RGB0'>

</span><span class='RGB14'>DISК VЕRSIОN : РНANТASY </span><span class='RGB0'>
</span><span class='RGB10'>РА3МЕР</span><span class='RGB0'> </span><span class='RGB10'>: 117 CЕКТОРОВ </span><span class='RGB0'>

</span><span class='RGB14'>DISК VЕRSIОN : CОDЕ ВUSТЕRS </span><span class='RGB0'>
</span><span class='RGB10'>РА3МЕР</span><span class='RGB0'> </span><span class='RGB10'>: 93 CЕКТОРА </span><span class='RGB0'>



</span>
Файлы