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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2009, 23:07   #21
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

есть такой способ
//Устанавливаем шаблон поиска в зависимости от условия.
case mode of
//первое слово
0: _regexp.Expression:='[\w\d-.]+@([\w\d-]+(\.[\w\-]+)+)';
//второе слово
1: _regexp.Expression:='(http|ftp)://([\w\d-]+(\.[\w\d\-]+)+)(([\w\d\-=\?\\\./]+)+)*';
но не работает.
мимо вне форума Ответить с цитированием
Старый 27.06.2009, 23:12   #22
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Напиши, что конкретно тебе нужно сделать. Постараюсь помочь. А то сложно понять суть твоего вопроса.
Котэ покарает тебя, %username%!
Longedok вне форума Ответить с цитированием
Старый 27.06.2009, 23:18   #23
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

например, есть текст:
Цитата:
----------------------------------------
Contents
----------------------------------------

- I. System Requirements
- II. Supported Hardware
- III. Supported Controllers
- IV. Installation Instructions
- V. Controls
- VI. Known Issues/Troubleshooting
- VII. Performance Issures
- VIII. Saved Games
- IX. Further Troubleshooting
- X. Useful Websites
найти надо строки со словами 'System' и 'Saved'. мне нужно составить правильно запрос, например,
regex.Expression := 'System'; - первое слово и
regex.Expression := 'Saved'; - второе слово.
искать надо по двум разным словам.
незнаю, правильно ли объяснил
мимо вне форума Ответить с цитированием
Старый 27.06.2009, 23:23   #24
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Код:
regex.expression := '(System|Saved)'; //это выражение совпадёт со строкой, если в ней встречается либо слово System, 
//либо слово Saved
Котэ покарает тебя, %username%!
Longedok вне форума Ответить с цитированием
Старый 28.06.2009, 10:07   #25
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

т.е. | - означает 'либо' одно слово ищем либо другое?
хорошо, а если мне надо, как в посте #21 вытащить только мыло и адрес(http):
Цитата:
----------------------------------------
Contents
----------------------------------------

- I. System Requirements admin@mail.ru
- II. Supported Hardware
admin@mail.ru
- III. Supported Controllers
- IV. Installation http://www.programmersforum.ru Instructions
- V. admin@mail.ru Controls
- VI. Known Issues/Troubleshooting
- VII. Performance Issures
- VIII. Saved Games
http://www.programmersforum.ru
- IX. Further Troubleshooting
- X. Useful Websites
то запись будет:
Код:
regex.expression := '[\w\d-.]+@([\w\d-]+(\.[\w\-]+)+)|(http|ftp)://([\w\d-]+(\.[\w\d\-]+)+)(([\w\d\-=\?\\\./]+)+)*';
правильно?
мимо вне форума Ответить с цитированием
Старый 28.06.2009, 18:19   #26
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от мимо Посмотреть сообщение
то запись будет:
...
правильно?
Ну да, так и есть
Котэ покарает тебя, %username%!
Longedok вне форума Ответить с цитированием
Старый 29.06.2009, 17:36   #27
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

а вот интересно.
в примере TestRExp (RegExp Studio) (поиск URL) использую запись вида:
(http://)[\w\d-]+(\.[\w\d\-]+)+
и он мне выделяет только http://www.programmersforum.ru
из
http://www.programmersforum.ru/showt...t=55976&page=3
но как только тоже самое применяю в своей программе, то мне выдается целая строка:
http://www.programmersforum.ru/showt...t=55976&page=3
может запрос неправильный?
мне нужно оставить из строки
http://www.programmersforum.ru/showt...t=55976&page=3
только
http://www.programmersforum.ru
как осуществить? подскажите.
мимо вне форума Ответить с цитированием
Старый 29.06.2009, 18:15   #28
Longedok
Пользователь
 
Аватар для Longedok
 
Регистрация: 14.07.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от мимо Посмотреть сообщение
как осуществить? подскажите.
Странно, у меня этот регэксп выделят именно то, что тебе нужно (тестировал в Delphi и в RegexBuddy). Наверное ты как-то не очень правильно скопировал выражение.
Котэ покарает тебя, %username%!

Последний раз редактировалось Longedok; 29.06.2009 в 18:48.
Longedok вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать такую программку C++ Kisia Помощь студентам 8 29.04.2009 12:56
Как осуществить запоминание объектов? Djem1991 Общие вопросы Delphi 4 06.01.2009 14:09
Как осуществить доступ к полю? Чайник87 Помощь студентам 2 13.10.2008 23:11
Тест на логику xTANATOSx Свободное общение 5 21.10.2007 16:39