Задать вопрос
@Darijj

Как правильно написать регулярное выражение?

Добрый вечер, целый день пытаюсь написать регулярное выражение и никак не выходит...
Вот пример текста:
<pb/>Перекати<s>Pиo-дe-Жaнeйpo.</s> Перекати-поле;<span>поле</span>полe

Мне нужно, чтобы регулярное выражение нашло только те слова которые не завернуты в тег, ну и сами не являются тегом.
Вот, я здесь пробовал сделать это с помощью negative lookahead и negative Lookbehind, но что-то не выходит https://regex101.com/r/6pMDHr/1 Помогите, пожалуйста.
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
  • слова, которые не завернуты в тег
  • нет вложенных тегов

Следовательно, нужны слова, которые:
  • либо сразу после </ ... >
  • либо сразу после < ... />
  • либо в начале строки

Так и запишем:
(?<=<\/[^<>]+>|<[^<>]+\/>|^)([^<>]+)
https://regex101.com/r/6OliJi/1

P.S. Отдельные слова

(?<=(?:<\/[^<>]+>|<[^<>]+\/>|^)[^<>]*)([a-zа-яё-]+)

https://regex101.com/r/HT9qs6/1
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы