11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
||||||
1 | ||||||
Применение регулярных выражений для парсинга email-ов получателей из emf-файла16.06.2016, 13:52. Показов 3280. Ответов 22
Метки нет (Все метки)
Подскажите как применять регулярные выражения к нескольким строкам (заранее количество не известно)
Например есть текст:
При этом заранее количество строк, которые будут содержать "Текст2" не известно. Я определяю нужную строку ("нужная строка "текст2", "Текст2"...) используя Pos(), выбераю из нее первые текст2, а вот как разобрать следующие строки и вытащить из них остальные текст2?
0
|
16.06.2016, 13:52 | |
Ответы с готовыми решениями:
22
Применение регулярных выражений для фильтра тегов Применение регулярных выражений Применение регулярных выражений к файлу Как оптимизировать применение регулярных выражений |
Супер-модератор
|
|
16.06.2016, 16:54 | 2 |
Непонятно, что в конечном итоге требуется. Зачем в данном случае что-то искать, когда искомый текст и так известен, это текст2
Более приближенно к реальности можно задать вопрос?
0
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
||||||
16.06.2016, 17:19 [ТС] | 3 | |||||
Приближенно к реальности - по прежнему разбираю eml-файл. Стоит задача получить конечного адресата, т.е. из строки To: спарсить адреса. В этой строке (и следом за ней) может быть сколько угодно адресов (рассылка, спам).
Т.е. выглядит это так:
0
|
Супер-модератор
|
||||||
16.06.2016, 18:36 | 4 | |||||
Грубо - вот так:
Этого хотелось?
1
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
||||||
16.06.2016, 20:28 [ТС] | 5 | |||||
Не совсем. Этот код будет обрабатывать весь текст и соответственно выберет и другие адреса, которые мне не нужны (например From: адрес@отправителя.ру, мне нужны только получатели).
Добавлено через 21 минуту т.е.
0
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
|||||||||||
17.06.2016, 17:07 [ТС] | 7 | ||||||||||
Вот текст письма:
При этом получателей может быть сколько угодно. Письма формируются по разному, единственное за что можно зацепиться (как я думаю) это ключевое слово To:. Далее (как я размышляю) надо в цикле перебирать все последующие строки, пока в ней не перестанут встречаться e-mail адреса. Добавлено через 15 часов 0 минут Подниму. Актуально. Добавлено через 3 часа 33 минуты Близок к решению своей проблемы. Выбираю нужные адреса, но если адреса имеют вид rozalski.name@mail.ru, то они не выбираются. Подскажите как переписать выражение
0
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
|
17.06.2016, 19:03 [ТС] | 9 |
А как записать чтобы выбирал без этих <> скобок?
Да и где взять такой конструктор?
0
|
17.06.2016, 19:54 | 10 |
1
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
|
17.06.2016, 20:22 [ТС] | 11 |
0
|
Супер-модератор
|
||||||
17.06.2016, 22:01 | 13 | |||||
rozalski, это двухэтапный процесс:
0
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
|||||||||||
18.06.2016, 11:36 [ТС] | 14 | ||||||||||
Я вот до такого дописался :
Добавлено через 13 часов 16 минут К сожалению приведенный код не заработал
0
|
Супер-модератор
|
|
18.06.2016, 11:52 | 15 |
"Бедному Ванечке всюду камушки" (С) "Народная мудрость"
P.S. Я неработающих кодов не выкладываю. Проверяй содержимое list-а, мне про него ничего не известно. Откуда он взялся, как заполняется... А мне, если честно, надоело по кругу ходить. Что бы не сделал - тебе все не так. Больше дел у меня нет, что-ли, кроме как постоянные претензии выслушивать? От темы отписываюсь.
0
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
||||||
18.06.2016, 12:03 [ТС] | 16 | |||||
Да я же без претензий, просто пытаюсь разобраться. В list читается текст из eml файла, там все хорошо.
Почему может не выполняться условие?
0
|
11 / 11 / 9
Регистрация: 26.08.2011
Сообщений: 177
|
|
18.06.2016, 16:37 [ТС] | 19 |
Приведенный выше код работает на вышеприведенном примере, тут все замечательно. Но письма имеют различную структуру, например вот письмо уведомление с форума:
Кликните здесь для просмотра всего текста
Delivered-To: anfx@mail.ru
Return-path: <> Authentication-Results: mxs.mail.ru; spf=softfail (mx221.i.mail.ru: transitioning domain of cyberforum.ru does not designate 185.12.92.28 as permitted sender) smtp.mailfrom=admin@cyberforum.ru smtp.helo=cyberguru.ru Received-SPF: softfail (mx221.i.mail.ru: transitioning domain of cyberforum.ru does not designate 185.12.92.28 as permitted sender) client-ip=185.12.92.28; envelope-from=admin@cyberforum.ru; helo=cyberguru.ru; Received: from [185.12.92.28] (port=25255 helo=cyberguru.ru) by mx221.i.mail.ru with esmtp (envelope-from <admin@cyberforum.ru>) id 1bDx2n-0005TW-6s for anfx@mail.ru; Fri, 17 Jun 2016 19:54:57 +0300 X-Mru-BL: 0:0 X-Mru-TLS: TLSv1:AES256-SHA X-Mru-BadRcptsCount: 0 X-Mru-PTR: cyberforum.ru X-Mru-NR: 1 X-Mru-RC: EU Received: from cyberguru.ru (localhost [127.0.0.1]) by cyberguru.ru (8.14.7/8.14.7) with ESMTP id u5HGsvZK028213 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <anfx@mail.ru>; Fri, 17 Jun 2016 19:54:57 +0300 (MSK) (envelope-from admin@cyberforum.ru) Received: (from cyberforum@localhost) by cyberguru.ru (8.14.7/8.14.7/Submit) id u5HGsvIl028212; Fri, 17 Jun 2016 19:54:57 +0300 (MSK) (envelope-from admin@cyberforum.ru) Date: Fri, 17 Jun 2016 19:54:57 +0300 (MSK) X-Authentication-Warning: cyberguru.ru: cyberforum set sender to admin@cyberforum.ru using -f To: anfx@mail.ru Subject: =?windows-1251?q?=CE=F2=E2=E5=F2_=E2_=F2=E5=EC=E5_=27RegExp_-_=ED=E0=E9=F2=E8_=EE=F8=E8=E1=EA=F3_=E2_=EA=EE=E4=E5=27?= X-PHP-Script: www.cyberforum.ru/newreply.php for 85.143.12.218, 85.143.12.218 From: =?windows-1251?q?CyberForum=2Eru_-_=F4=EE=F0=F3=EC_=EF=F0=EE=E3=F0=E0=EC=EC=E8=F1=F2=EE=E2_=E8_=F1=E8=F1=E0=E4=EC= E8=ED=EE=E2?= <admin@cyberforum.ru> Auto-Submitted: auto-generated Message-ID: <20160617165457.a3c68f56e97e@www.cyberforum.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: 8bit X-Priority: 3 X-Mailer: vBulletin Mail via PHP X-DMARC-Policy: no X-Mras: OK X-Mru-Authenticated-Sender: admin@cyberforum.ru X-Spam: undefined X-Senderinfo: 38 Уважаемый(ая) rozalski, Gdasar только что ответил в теме, на которую Вы подписались, - RegExp - найти ошибку в коде - в разделе C++ Builder CyberForum.ru - форум программистов и сисадминов. Эта тема расположена по адресу: https://www.cyberforum.ru/cpp-... -post.html Текст сообщения: *************** А разве lst->Add(re->Match[1]);не вытаскивает адреса без скобок? ---Цитата (сообщение от rozalski)--- Да и где взять такой конструктор? ---Конец цитаты--- http://regexr.com/v1/ *************** Также могут быть и другие сообщения, но Вы не будете получать уведомления, пока снова не посетите форум. С наилучшими пожеланиями, CyberForum.ru - форум программистов и сисадминов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Отказ от подписки: Тут уже приведенный способ не срабатывает. Ковыряюсь дальше... Добавлено через 13 минут Празмышляю вслух. Если утверждение: верно, то мне просто необходимо перебирать все строки после встретившегося To и проверять попадаются ли там адреса e-mail, как только они перестали встречаться запоминать уже найденные и выходить... Помимо этого встречаются письма в которых в строке To нет адреса, но есть адреса в следующих строках. Так, на словах вроде ничего сложного....
0
|
18.06.2016, 17:23 | 20 | |||||
rozalski, попробуй:
Код
anfx@mail.ru и Код
test@mail.ru shadow_test@mail.ru logins@odnoklassniki.ru
0
|
18.06.2016, 17:23 | |
18.06.2016, 17:23 | |
Помогаю со студенческими работами здесь
20
Парсинг файла с использованием регулярных выражений Парсинг файла с применением регулярных выражений Задача по обработке файла с использованием регулярных выражений С помощью регулярных выражений осуществить очистку файла от тегов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |