Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярные выражение, найти все совпадения цифр 
:(
    Опции темы
Akella
Дата 19.5.2008, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



kemiisto, я такие взрослые выражения и сам потом не разрулю, если пользователям нужно будет что-либо подкорректировать  smile  но всё равно спасибо

Добавлено через 1 минуту и 54 секунды
мало того, проверил на regexpr.ru -> совпадений не найдено
PM MAIL   Вверх
kemiisto
Дата 19.5.2008, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 16
Всего: 160



Цитата(Akella @  19.5.2008,  23:26 Найти цитируемый пост)
kemiisto, я такие взрослые выражения и сам потом не разрулю, если пользователям нужно будет что-либо подкорректировать

Akella, где ты видел пользователей, даже чисто теоретически способных корректировать регулярные выражения? smile Или я не так понял... 

Цитата(Akella @  19.5.2008,  23:26 Найти цитируемый пост)
мало того, проверил на regexpr.ru -> совпадений не найдено

Не показатель! Мало ли! У меня в проекте Delphi всё сработало. Скачай лучше http://www.regexpstudio.com/Downloads/TestRExp.rar от автора TRegExpr и пользуй для проверки регулярных выражений. Там кстати моё выражение тоже катит (что не удивительно).

Проблема всё-таки с определением образца. Уж очень много альтернатив. Просто число - не катит; число, а потом какой-либо разделитель и опять число - опять не катит! Скобки ещё всякие, у.е. У меня складывается ощущение, что задача вообще не решаема. Даже вручную, словесно, сложно сформулировать правило поиска именно телефонных номеров в приведённом куске текста. 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Akella
Дата 21.5.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(kemiisto @  19.5.2008,  23:38 Найти цитируемый пост)
Akella, где ты видел пользователей, даже чисто теоретически способных корректировать регулярные выражения? smile Или я не так понял... 

я имел ввиду, что пользователю захочется немного подкорректировать условие поиска телефонов, но корректировать-то буду я
тем более описания нет smile 

вот ответ с выражением и описанием
http://forum.vingrad.ru/index.php?showtopi...t&p=1516904

Добавлено через 1 минуту и 31 секунду
Цитата(kemiisto @  19.5.2008,  23:38 Найти цитируемый пост)
Скачай лучше ... 

вот им и пользуюсь, немного подкорректировал и пользуюсь, просто других библиотек нет для дельфи

Добавлено через 5 минут и 9 секунд
я не спорю, что она полностью решаема, просто хотелось бы поиметь несколько более менее подходящих выражений.

Добавлено через 7 минут и 16 секунд
а про исключения не в курсе? можно ли в выражении задавать исключения, допустим не брать во внимание наборы цифр, где много нулей подряд, например 150000 или 1 500 000

Добавлено через 9 минут и 37 секунд
как видно из текста, чаще всего (практически постоянно) попадаются номера, где разделитель пробел, тире или скобки, или без разделителей, ну так обычно телефоны и пишут, вот на таких условиях что можно придумать ещё?
PM MAIL   Вверх
dumb
Дата 22.5.2008, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



Akella, ты видел этот пост? - на твоем примере текста работает четко.
PM MAIL   Вверх
Akella
Дата 22.5.2008, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



а как описать это выражение?
PM MAIL   Вверх
dumb
Дата 23.5.2008, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



э.. словами?..

Код
(\d[\d\(\)\- ]{4,15}\d)( [^$у]|[.,;\n\r])

ищем последовательность, которая начинается и заканчивается цифрой, а между ними от 4 до 15 цифр,пробелов,тире или скобок. после должны быть либо разделители(.,;\n\r), либо пробел, за которым не следует символ $ или русская 'у'. smile
PM MAIL   Вверх
Akella
Дата 23.5.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(dumb @  23.5.2008,  14:32 Найти цитируемый пост)
за которым не следует символ $ или русская 'у'.

т.е. можно задавать исключения? круто, опробуем-с  smile 
PM MAIL   Вверх
kemiisto
Дата 24.5.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 16
Всего: 160



Цитата(Akella @  23.5.2008,  16:38 Найти цитируемый пост)
т.е. можно задавать исключения?

Естественно! Перечни символов (символьные классы) — просто конечный набор символов. Он ограничивается квадратными скобками и содержит перечисление символов, которые можно вместо него подставить. Заменяется он всего на один символ, входящий в это перечисление. Если первый символ перечня (идущий сразу после открывающейся квардратной скобки) — ^, то это означает символ, который отсутствует в данном перечислении.
Пример, 
Код

[^0-9]      // все символы, кроме цифр


Пролистай прикреплённый документ (он пока ещё не дописан), авось пригодится! Заодно оцени!  smile 

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  regexpr.pdf 223,89 Kb


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Akella
Дата 26.5.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Спасибо, прочёл, дописывай. Будет полезным.
PM MAIL   Вверх
THandle
  Дата 26.5.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



Цитата(Akella @  26.5.2008,  12:33 Найти цитируемый пост)
Спасибо, прочёл, дописывай. Будет полезным. 

Не знаю что там было в предыдущем посте kemiisto прикреплено, не качается, но вот его же статья по регуляркам:

http://forum.vingrad.ru/articles/topic-213075.html
PM   Вверх
Akella
Дата 26.5.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



я скачал и прочёл
PM MAIL   Вверх
Akella
Дата 26.5.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Вот выражение
Цитата

regExp :=  '[\d]+((\.\d+)|())';

По идее мну нужно выудить числовое значение в скобках, допустим
Цитата
Кольцо 7 Дней (18,5)

или
Цитата
Кольцо 7 Дней (18.5)

или
Цитата
Кольцо 7 Дней (18)

или
Цитата
Кольцо 7 Дней (18.0)


правильно ли составлено выражение?
Я так понимаю, что или цифры, или выражение в скобках, так?

Добавлено @ 15:57
а мне нужны цифры в скобках

Это сообщение отредактировал(а) Akella - 26.5.2008, 16:26
PM MAIL   Вверх
Akella
Дата 26.5.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



воде вот оно:
Код

regExp :=  '\(\d+(([,\.]\d+)|()).*?\)';


Это сообщение отредактировал(а) Akella - 26.5.2008, 16:42
PM MAIL   Вверх
dumb
Дата 26.5.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 13
Всего: 158



можно проще: 
Код
\(([\d.,]+)\)

к тому же у тебя в subexpr попадает только "дробная" часть, а все выражение вместе со скобками. приведенная рега поместит в subexpr все число.

Добавлено через 3 минуты и 25 секунд
только оно не очень строгое - в том плане, что и (...) будет удовлетворять условию. smile
PM MAIL   Вверх
Akella
Дата 29.5.2008, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



http://www.sweethome.in.ua/regexp/regexp.aspx
здесь ещё можно проверять(тестировать) регулярки
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.