Регулярное выражение с исключающим словом

  • Автор темы Автор темы bizzon
  • Дата начала Дата начала

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 120
Реакции
135
Баллы
63
Есть строки

синий красный зеленый желтый
малиновый зеленый синий пурпурный
золотистый фиолетовый синий желтый
золотистый фиолетовый желтый черный


Нужно регулярное выражение, чтобы бралась строка где есть слово "синий", но не было "малиновый"
 
Последнее редактирование:
Есть строки

синий красный зеленый желтый
малиновый зеленый синий пурпурный
золотистый фиолетовый синий желтый

Нужно регулярное выражение, чтобы бралась строка где есть слово "синий", но не было "малиновый"

Код:
Развернуть Свернуть Копировать
^((?!малиновый).)*$
 
Код:
Развернуть Свернуть Копировать
^((?!малиновый).)*$
Да, спасибо, понял с малиновым, но там нет синего, добавил еще одну строку в пример. И еще трудность, синий по отношению к малиновому не известно где, спереди или сзади.
Вообще, достаточно совпадения синего с исключающим малиновым, т.е. не обязательно всю строку.
Скриншот 2021-06-26 17.05.07.png
 
Последнее редактирование:
Возможно есть какое-то универсальное решение, но иногда проще на 2 регулярки разделить)
 
если в одной строке будет и синий и малиновый это уже конфликт значений, регулярку надо разбирать на 2 части.
выражение выше, в него можно добавить слова как черный список, будет искать всё кроме тех строк которые указанны.
или переработать логику вашей реализации
 
Нужно одной, - Синий, но не Малиновый.

синий красный зеленый желтый
малиновый зеленый синий пурпурный
золотистый фиолетовый синий желтый
золотистый фиолетовый желтый черный

Это очень частый вариант, поиск слова с исключением.
Если будет решение, то вынесем как отдельный Снипет.


79371
 
Нужно одной, - Синий, но не Малиновый.

синий красный зеленый желтый
малиновый зеленый синий пурпурный
золотистый фиолетовый синий желтый
золотистый фиолетовый желтый черный

Это очень частый вариант, поиск слова с исключением.
Если будет решение, то вынесем как отдельный Снипет.


Посмотреть вложение 79371
Не проще вам будет сделать перебор строк на наличие слова?
 
Они у тебя в списке, если нет, добавь в список, удали строки по регулярке \bмалиновый\b, да там даже регулярки не нужны, удалить строки содержащие малиновый, и получить строку содержащие слово синий
1624746110587.png1624746156968.png
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)