Рег. выраж.. Как получить строки которые не содержат определенный текст?

Поддержка
  • Читается из файла текст такого вида:

    in4uftszjsl8clqxzlkp7ef2obr2fioocrlct0qypsvjsvsdjs:https://site1.ru, https://site2.ru
    in4uftszjsl8clqxzlkp7ef2obr2fioocrlct0qypsvjsvsdshs:https://site2.ru
    in4uftszjsl8clqxzlkp7ef2obr2fioocrlct0qypsvjsvsdshs:https://site3.ru

    Нужно с помощью рег. выраж. получить все строки которые не содержат текст "https://site3.ru"
    Использовал разные готовые рег. выраж. найденные в сети для такой цели, например ^((?!https://site3.ru).)*$ вроде в regex101 выражение верное, но почему то не отрабатывает как надо с помощью действия "Извлечь все данные", возвращает пустое значение. Подскажите да, в чем тут дело, почему может не работать.

  • @Benson9999 said in Рег. выраж.. Как получить строки которые не содержат определенный текст?:

    Читается из файла текст такого вида:

    in4uftszjsl8clqxzlkp7ef2obr2fioocrlct0qypsvjsvsdjs:https://site1.ru, https://site2.ru
    in4uftszjsl8clqxzlkp7ef2obr2fioocrlct0qypsvjsvsdshs:https://site2.ru
    in4uftszjsl8clqxzlkp7ef2obr2fioocrlct0qypsvjsvsdshs:https://site3.ru

    Нужно с помощью рег. выраж. получить все строки которые не содержат текст "https://site3.ru"
    Использовал разные готовые рег. выраж. найденные в сети для такой цели, например ^((?!https://site3.ru).)*$ вроде в regex101 выражение верное, но почему то не отрабатывает как надо с помощью действия "Извлечь все данные", возвращает пустое значение. Подскажите да, в чем тут дело, почему может не работать.

    Данные вы каким действием получаете? Скорее всего у вас список, по этому регулярное выражение не срабатывает, оно предназначено для работы со строками.
    Если у вас список, вы можете пройтись по нему циклом "Foreach" и проверять совпадение в строке действием "Содержит", если строка не содержит, значит добавить её в другой список

  • @Fox said in

    Данные вы каким действием получаете? Скорее всего у вас список, по этому регулярное выражение не срабатывает, оно предназначено для работы со строками.

    Из txt файла с помощью действия "Читать файл". Проверил действием "Является ли строкой" - является :-)

    Если у вас список, вы можете пройтись по нему циклом "Foreach" и проверять совпадение в строке действием "Содержит", если строка не содержит, значит добавить её в другой список

    Не хотел так реализовывать, но видимо придется.

  • @Benson9999 said in Рег. выраж.. Как получить строки которые не содержат определенный текст?:

    Не хотел так реализовывать, но видимо придется.

    ))) это наоборот самый правильный вариант. Вы конечно можете список объединить в строку и затем парсить регуляркой, но это будет менее надёжно

  • @Fox said in

    ))) это наоборот самый правильный вариант.

    Хм., не знал что так, мне казалось что это не оптимально, типа дополнительная проверка одних и тех же строк, вместо того чтобы сразу взять все подходящие значения.
    А так все таки в рег. выраж. дело походу, попроще выражение составил, чисто чтобы проверить, отрабатывает как надо.