Применение регулярного выражения на файл

Поддержка
  • @sergerdn
    Задача такая что нужно из csv на основе файла с мылами собрать новый файл)
    Так сказать есть оригинал с фулл данными, взяли из него только почтовые адреса, отсеяли часть по какому-то признаку, например только гмаил, и нужно собрать обратно как было
    То есть на основе мыльника нужно получить фулл строку и записать её
    Другого вида реализацию не очень вижу, можно конечно в список и перебирать содержит или нет, но это пиздец сколько времени займёт, поэтому регулярки самое подходящее, но я и не профи
    Самое поразительное в том что в конструкторе то работает

  • По сути 3 файла должно быть в работе
    image.png

  • Там 3 действия примерно без регулярок:

    1. Получил строку из ресурса в переменную.
    2. Распарсил.
    3. Посмотрел мыло, если нужно - записал первую переменную.

    В многопотоке тоже будет работать, не медленнее чем регулярки точно.

  • @fluffik если я правильно понял, то вам нужна регулярка для всего файла?

    (^|\s+)(.+? sasun.danielyan.92@mail.ru[^\s]+)
    
  • @fluffik said in Применение регулярного выражения на файл:

    @sergerdn
    Задача такая что нужно из csv на основе файла с мылами собрать новый файл)
    Так сказать есть оригинал с фулл данными, взяли из него только почтовые адреса, отсеяли часть по какому-то признаку, например только гмаил, и нужно собрать обратно как было
    То есть на основе мыльника нужно получить фулл строку и записать её
    Другого вида реализацию не очень вижу, можно конечно в список и перебирать содержит или нет, но это пиздец сколько времени займёт, поэтому регулярки самое подходящее, но я и не профи
    Самое поразительное в том что в конструкторе то работает

    Файл как ресурс, в цикле бери данные из ресурса, указывая notreuse, далее обрабатывай каждую строку отдельно и пиши результат в другой ресурс.
    Это вся логика.

    Имей в виду, что BAS читает сразу весь файл ресурса, то есть если файл реально огромный, то могут быть проблемы.

  • @fluffik said in Применение регулярного выражения на файл:

    @sergerdn
    Задача такая что нужно из csv на основе файла с мылами собрать новый файл)
    Так сказать есть оригинал с фулл данными, взяли из него только почтовые адреса, отсеяли часть по какому-то признаку, например только гмаил, и нужно собрать обратно как было
    То есть на основе мыльника нужно получить фулл строку и записать её
    Другого вида реализацию не очень вижу, можно конечно в список и перебирать содержит или нет, но это пиздец сколько времени займёт, поэтому регулярки самое подходящее, но я и не профи
    Самое поразительное в том что в конструкторе то работает

    (?im)^(.*sasun\.danielyan\.92@mail\.ru.*)$
    

    1351729d-730c-45f4-879a-a8cca7bb6596-изображение.png

    Если нужно собрать все строки, используйте действие "Извлечь все данные"

  • @Inwnew ты не правильно понял задачу

  • @sergerdn На такую логику уйдёт куча времени

  • @Fox Ты великолепен как всегда) Спасибо тебе огромное, я даже не знаю что я делал бы без твоей помощи, не зря я своего мейнкуна назвал так же))))
    Интересно почему этот робот раньше не сказал мне о правильном синтаксисе регулярки
    e9b8a4d9-9f40-496f-8731-84ee14149885-image.png

  • @Fox теперь нужно понять как заставить её работать когда вставляешь переменную вместо мыла =(

  • @fluffik said in Применение регулярного выражения на файл:

    @Fox теперь нужно понять как заставить её работать когда вставляешь переменную вместо мыла =(

    Она должна работать сразу без каких либо проблем. Просто точки в почте для регулярки являются "любым символом"

  • @Fox Действительно) это я мудак перепутал файлы))
    Как можно исправить вот такое?
    ab9ac508-4808-41d5-bf3b-311a0190c850-image.png

  • @fluffik said in Применение регулярного выражения на файл:

    @Fox Действительно) это я мудак перепутал файлы))
    Как можно исправить вот такое?

    Сохранять файлы в кодировке utf-8

  • @fluffik said in Применение регулярного выражения на файл:

    @sergerdn На такую логику уйдёт куча времени

    Не уверен, даже если строк 100К, уйдут минуты.

  • @sergerdn Я уже делал такие скрипты, в моём валидаторе был такой алгоритм, это пара минут уходило на подготовку, после перехода на регулярку подобный процесс стал занимать пару секунд, а нужно всего лишь рассортировать по разным почтовикам одну базу. А в этой задаче если мы говорим про 100к строк оригинальной базы с данными и перебора на ней 20к мыл уйдут часы, когда регулярка справляется за 5 минут