Модераторы: THandle, bems

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Примеры регулярных выражений 
:(
    Опции темы
cemick
Дата 18.5.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 6



Тут наверно надо более точно задавать условие поиска квартир, например, мы знаем что перед "кв" не может быть чисел:
[,;\A]{1}[\s\D]*кв[^а-Я] (сочетание букв "кв" до которых может быть куча пробельных символов и один терминальный, либо начало строки)
вместо регулярного выражения:
[^а-Я\ ]кв[^а-Я]

для предложения ДОМ, Автовокзал, 2К, 50кв. м., хор.сост., газ, лет.кухня, вода во дворе
PM MAIL WWW   Вверх
Akella
Дата 18.5.2009, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



За то теперь такое:
Цитата
  Дом, 85 м*2, Хол. Гора, Лен. сторона, тел., вода, 6 сот., уч. ровн., 50 т.у.е. 

не может определить

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


Творец
****


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

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



Цитата(cemick @ 18.5.2009,  10:20)
Не видит потому, что ([^а-Я]| ) предполагает наличие хотя бы одного символа..

 (?ir)(уч-к|коттедж|^([а-Я])*дом([а-Я])*|домик[^а-Я]|часть дома|полдома|пол дома|усадьб(а|у)|дач(а|у)|земля|зем. участок|зем.участок|земельный участок|участок зем.|участок земли|участок |ПОД ЗАСТРОЙКУ |ПОД ЗАСТРОЙКУ\.)

 (?ir)(уч-к|коттедж|^([а-Я])*дом([а-Я])*|домик[^а-Я]|часть дома|полдома|пол дома|усадьб(а|у)|дач(а|у)|земля|зем. участок|зем.участок|земельный участок|участок зем.|участок земли|участок |ПОД ЗАСТРОЙКУ |ПОД ЗАСТРОЙКУ\.)
Нудно было  убрать то, что красным
PM MAIL   Вверх
cemick
Дата 18.5.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 6



Цитата(Akella @  18.5.2009,  15:31 Найти цитируемый пост)
не может определить

почему?

Цитата(Akella @  18.5.2009,  15:48 Найти цитируемый пост)
Нудно было  убрать то, что красным 


^ -- ??? В смысле убрать, это обозначает начало строки?

PM MAIL WWW   Вверх
Akella
Дата 18.5.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Ну не знаю, вот щас так определяет:
  Дом, 60 м2, газ, удобства, телефон, Люботин, экв. 26 т.д. 
  Дом, 85 м*2, Хол. Гора, Лен. сторона, тел., вода, 6 сот., уч. ровн., 50 т.у.е. 
Дом Дом, Дом

все 5 слов Дом
PM MAIL   Вверх
Akella
Дата 18.5.2009, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Не могу найти в справке, как указать отрицание, несоотетствие.
Допустим предложение
  Дом ХТЗ Фрунзе флигель Зкомнаты, жилое состояние, вода во дворе, газ, канализация  по улице,  гараж,  3 сотки

регулярка: ((?ir)(\d(к|-к[^у]| из|из|/из| к\.| -к| к[ом]){1,6})|Зиз|Зк.)
определяем, что это квартира из-за выделенного красным

Как бы указать что-то вроде: ((?ir)(\d(к|-к[НЕу]| из|из|/из| к\.| -к| к[ом][НЕомнаты]){1,6})|Зиз|Зк.)

Добавлено через 4 минуты и 14 секунд
Цитата(Akella @  18.5.2009,  16:33 Найти цитируемый пост)
флигель Зкомнаты, 

там вообще буква "З"
PM MAIL   Вверх
Akella
Дата 18.5.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Вот хороший пример
  Полдома в Люботине, 2 комнаты, большая кухня, 
Вот регулярка: ((?ir)(\d(к |-к[^у]| из|из|/из| к\.| -к| к[ом]){1,6})|Зиз|Зк\.)
Из-за выделенного красным парсер думает, что это квартира, скорее всего из-за этого:  к[о (выделено зелёным)

Но вот это уже должно захавать, т.е. это изолированная квартира
В Люботине, 2 комн. из. кв. , большая кухня, отапливаемая веранда, газ, вода,

Что тут придумать?

Добавлено через 6 минут и 26 секунд
Цитата(Akella @  18.5.2009,  16:33 Найти цитируемый пост)
Не могу найти в справке, как указать отрицание, несоотетствие.

Цитата

Если первый символ перечня (сразу после "['') - "^'', то такой перечень совпадает с любым символом не перечисленным в перечне. 



Цитата(cemick @  18.5.2009,  15:52 Найти цитируемый пост)
^ -- ??? В смысле убрать, это обозначает начало строки?

смотря в каком месте этот символ ^

Добавлено через 8 минут и 35 секунд
Пока придумал так: ((?ir)(\d(к |-к[^у]| из|из|/из| к\.| -к| к(ом\.|омн\.|[^ комнаты])){1,6})|Зиз|Зк\.)
потом посмтотрим smile 

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 6



Дак разве может быть, что бы перед сокращением обозначающим квартиру  сразу стояли стоит цифры????

Цитата(Akella @  18.5.2009,  16:33 Найти цитируемый пост)
Не могу найти в справке, как указать отрицание, несоотетствие.

Это похоже в них и нет. Можно только отрицание буквы. 

Цитата(Akella @  18.5.2009,  16:48 Найти цитируемый пост)
Пока придумал так: ((?ir)(\d(к |-к[^у]| из|из|/из| к\.| -к| к(ом\.|омн\.|[^ комнаты])){1,6})|Зиз|Зк\.)


[^ комнаты]  smile  --это означает, что не должна встретится не одна из перечисленных в этих скобках семи букв

Как вариант можно отдельно написать регулярное выражение, которым будешь проверять наличие упоминания о комнатах
PM MAIL WWW   Вверх
Akella
Дата 18.5.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(cemick @  18.5.2009,  17:49 Найти цитируемый пост)
разве может быть, что бы перед сокращением обозначающим квартиру  сразу стояли стоит цифры????

вот так часто начинаются объявления:
3-к. из.кв.
3-к. из. кв.
3-комн. из.кв.
3-ком. из. кв.
3-к. приват. кв.

Добавлено через 1 минуту и 7 секунд
Цитата(cemick @  18.5.2009,  17:49 Найти цитируемый пост)
[^ комнаты]  smile  --это означает, что не должна встретится не одна из перечисленных в этих скобках семи букв

а если [^(комнаты)]
PM MAIL   Вверх
cemick
Дата 18.5.2009, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 6



Цитата(Akella @  18.5.2009,  19:37 Найти цитируемый пост)
3-к. из.кв.
3-к. из. кв.
3-комн. из.кв.
3-ком. из. кв.
3-к. приват. кв.


Дак тут же дефис еще стоит, который можно учитывать для исключения ложных срабатываний

Добавлено через 1 минуту и 17 секунд
Цитата(Akella @  18.5.2009,  19:37 Найти цитируемый пост)
а если [^(комнаты)] 

Так вроде не позволяет синтаксис регулярных выражений

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


Творец
****


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

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



Ну вместо дефиса может быть проблел или ничего не может быть:
Цитата

3к. из.кв.
3к. из. кв.
3 комн. из.кв.
3 ком. из. кв.
3 к. приват. кв.

PM MAIL   Вверх
Akella
Дата 19.5.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Как сказать парсеру, что, например, слово: рядом не должно браться во внимание smile 

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


Творец
****


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

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



cemick, тут в твоём примере небольшой казус:
вот твоя регулярка: (?ir)([,;\A][\s\D]{1}*кв[^а-Я]|изолированн(ая|ую)|гостинк(а|у)|комнат(у|а|ы)|из\. *кв\.|из\.*кв,|ГОСТ\.|комн. *из|комн. пр. *кв|З *из. *кв|3 из\? *кв.|3 *из. *кв)

Красным выделено то, что ты недавно посоветовал использовать, чтобы пропускать в тексте квадратные метры, например
Цитата

¦  5-к.  кв., Бавария, цокольный этаж, общ. 67 кв.м, нежилой фонд , подвал 67 кв.м, экв. 40000 д. Т. 751-67-72.

да, всё правильно, зелёный текст во внимание не берётся, теперь немного дёгтя smile 

вот текст, это всё квартиры, видно это по тому, что вначале текста
2-к. кв.
2-ком. кв.
5-к.  кв.
Цитата

¦ 2-к. кв., 607 м/р, Салтовка, под салон, стоматологию. 
¦  2-ком. кв., пр. Московский, в р-не пл. Руднева, 1/3, отдельный вход, 50/ 8, ремонт, брон. дверь, м/п окна, 
¦  5-к.  кв., Бавария, цокольный этаж, общ. 67 кв.м, нежилой фонд , подвал 67 кв.м, 
¦ Вы хотите преуспеть в бизнесе? Звоните! 3-кв., м. "М. Жукова", 1/5' "сталинка", Н = 3 м, суперпланировка, шикарное расположение-дома. 

но из-за выделенного красным куска регулярки... такие объявления не учитываются, а должны, что ещё можно придумать :(
PM MAIL   Вверх
cemick
Дата 20.5.2009, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 6



Ну смотря что надо  smile 
Можно и просто добавить учет еще и точки  smile  [,\.;\A]{1}[\s\D]*кв[^а-Я]
PM MAIL WWW   Вверх
Akella
Дата 20.5.2009, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(cemick @  20.5.2009,  09:00 Найти цитируемый пост)
Ну смотря что надо  smile 

надо и так и так, спасибо, глянем
PM MAIL   Вверх
Страницы: (4) Все 1 [2] 3 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

Добро пожаловать в форум группы "Delphi".

В разделе разрешается:

  • Флудить (в приемлемых величинах)
  • Обсуждать модерирование данного раздела (но не его модератора)
  • Добавлять свои правила если они не противоречат существующим
  • Делать наезды на пешеходов***

Строго запрещено:

  • Размещать рекламу
  • Совершать оскорбления личностей
  • Материться
  • *** Пешеходами не являются (ко)модераторы, админы, участники клуба.

Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle.

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


 




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


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

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