Любой символ кроме — регулярка


Dram
616

Есть таблица, где в тегах <td> есть ссылки, а есть и просто слова.

Нужно выцепить просто слова. Для этого нужна регулярка, цепляющая внутри тега все, если там нет закрывающего тега.

Почему эта не срабатывает? (цепляет все и где внутри тега есть ссылки и где нет)

label=»Цена»>((.*)[^>])</td>


ziliboba0213

Сами, батенька, сами 🤪 У вас это прекрасно получается :p

Вы язык бы уточнили, PHP я думаю? 🙂

И да, регулярки самое отвратительное в плане синтаксиса, не могу эту пакость никак выучить и запомнить 🙂

P.S. Простите за офтоп 🙂


Dram

Леня подсказал

label=»Цена»>([^>]+)</td>


Dram

А как это решить?

([^\d\w-]|^)Слово([^\d\w-]|$)

<td scope=»row» aria-label=»Название»>Слово</td>

<a href=»https://site.ru»>Слово</a>

Нужно чтобы первое цеплял, а анкоры в ссылках нет


jkm

([^\w-]|^)Слово(?=[^\w-]|$)(?![^<>]*</a>)


Dram

jkm, спс! Сработало!


Dram

Снова прошу помощи:

Нужна регулярка, выделяющая слова ТОЛЬКО с ОДНИМ тире (выделил жирным)

слово
слово-5
слово-слово
слово-п

слово-слово-слово

Вот так поему то цепляет там где два тире

^(.*)-([^-]+)$

а так пропускает там где после одного тире цифра

^(.*)-([^-])$

Sitealert

Так пойдёт?

^([^-\s]+)-([^-\s]+)\s$

timo-71
Sitealert:
^([^-\s]+)-([^-\s]+)\s$

Если проверяется что то типа «слово-слово», последний пробельный символ мешает


Dram

Sitealert, не цепляет https://regex101.com/r/703lkj/1

———- Добавлено 12.04.2020 в 12:42 ———-

timo-71, верно, спасибо!


timo-71

А если «слово-слово слово-слово слово-слово-слово-слово», то граница слова ( \b) вероятно поможет

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *