Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2011, 14:28   #1
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию регулярные выражения

Создал программу. Она авторизируется на сайте и по идеи должна читать все письма, а содержимое писем сохранять в текстовый файл рядом с собой.Использую PerlRegEx, делаю запрос на сайт и получаю HTML код.
Код:
<!-- complete message -->
<!-- /complete message -->
	<div class="msg-body" >
	1234tgff3w
<br />
</div>
<!-- /rendering -->
Как мне оформить
Код:
Regex.RegEx := '';
что бы опознавалось значение?
Пытался по разному, максимум что удалось вытянуть, это строчку msg-body. Может я просто не в курсе и перенос строки как то по особенному оформляется? Потому что
Код:
Regex.RegEx := '1234(.+?)f3w';
Выполняется на ура, а
Код:
Regex.RegEx := '1234(.+?)<br';
уже нет. Вообщем надеюсь на вас а вытянуть нужно целиком строчку: 1234tgff3w

Последний раз редактировалось mihali4; 02.11.2011 в 14:50.
Зод вне форума Ответить с цитированием
Старый 02.11.2011, 14:59   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Если я вас правильно понял, то как вариант:
Функция PosEx.
1. Ищем "msg-body"
2. От нее ищем "закрывалку тега" - ">" (ибо могут быть пробелы)
3. Начиная с позиции "закрывалка+1" ищем первый не пробел. (т.е. первый символ у "1234tgff3w")
4. Начиная с позиции "не пробела", собираем нужное нам строковое значение "1234tgff3w" (пока не встретится пробел).
mihali4 вне форума Ответить с цитированием
Старый 03.11.2011, 11:14   #3
Зод
Форумчанин
 
Регистрация: 25.08.2011
Сообщений: 140
По умолчанию

Почитал я про это. Текст бывает ведь разный в письмах, к тому же в теле письма может быть не одна строчка. Моржет быть и такие типы: "12436 9-67 лдор 75 пр ргеорвг46горе опо о аго ро е о57 г гн еор еуо 5 горнуео ег" и т.д. так сказать. Мне кажется что ПерлРег прекрасно справится но инфу не могу найти как правильно указать начало и конец строки, очень мало знаний о нем в интернете.
Зод вне форума Ответить с цитированием
Старый 03.11.2011, 11:18   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

для delphi 7 есть модуль RegEx, с ним куда проще вам будет. Темболее там синтаксис регулярных описан вроде бы даже на русском.

В delphi 2010 и выше встроен собственный модуль регулярных выражений.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регулярные выражения Farrel PHP 3 06.02.2011 18:43
Регулярные выражения DoGFoX Общие вопросы Delphi 1 03.02.2011 10:49
Регулярные выражения ACE Valery PHP 5 14.10.2009 11:37
регулярные выражения wyvern PHP 3 09.04.2009 22:15
Регулярные выражения Adamant Общие вопросы C/C++ 1 26.11.2007 19:44