![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Lunatikus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 29.6.2007 Репутация: нет Всего: 6 |
Здравствуйте. прочитал разные статьи/гайды по регулярным выражениям, но нигде не нашел возможности отрицания набора символов, только одиночные через ^.
Для примера, у меня есть две строки: "г.Тула. Тульская обл., тульская ул., д.45 кв. 3" "г.Тула. Тульская ул., д.45 кв. 3" необходимо выдрать название улицы. Но если я буду опираться только на окончание -ая, то из первой строки получу "тульская обл." а не "тульская ул.". поэтому я задумался, можно ли в последовательность получаемых символов ввести отрицание "обл.". Есть множество нюансов. например,я не могу искать только присутствию "ул.", т.к. это не всегда указано. Вот моя строка(разделил на подстроки дял дуобства восприятия): (,|\.|^) [^,"\.]* (ул\.|ул\s|Проспект|бульвар|пер|пр-д|ая|проезд|пр-т|пр.|вал|ш\.) .*? (,|$|д\.|\.) само собой, в ней многое еще не учтено...но сейчас передо мной встала необходимость решить указанную проблему. попробовал: (,|\.|^) [^,"\.]* [^о][^б][^л][^\.] [^,"\.]* (ул\.|ул\s|Проспект|бульвар|пер|пр-д|ая|проезд|пр-т|пр.|вал|ш\.) .* [^о][^б][^л][^\.] .*? (,|$|д\.|\.) выдает лишнюю информацию, а ".Тула. Тульская обл., тульская ул., д.45 кв. 3" ".Тула. Тульская ул., д.45 кв. 3" -------------------- TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games). сайт гильдии |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
с флагом G вроде дает нужный результат ... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Lunatikus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 29.6.2007 Репутация: нет Всего: 6 |
с ходу не выводит ничего. Разбираюсь в строке...
Добавлено через 11 минут и 40 секунд так ведь это строка, выводящая просто город, область, улицу, номер дома и квартиры, разве нет?Мне надо получить только улицу, в каком бы виде эта строка ни была написана(в пределах человеческой разумности). вот примеры строк: г.Муром.Владимировская обл.,ул Достелло, д 64. г. Москва, Пестовский пер, д.12, стр.1 127550, г.Москва, Дмитровское шоссе, д.46, корп.2, ОАО "ЦНИИ Промзданий", мастерская №3 693000, г.Южно-Сахалинск, ул.Дзержинского, д.15, оф.315 125445 Смольная ул., д. 24А, оф. 1219 -------------------- TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games). сайт гильдии |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
слишком много разностей в исходном тексте ,
я бы разбирал построчно , ([А-Яа-я0-9]+)[\s,\.]* а после смотрел что нашло -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Lunatikus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 29.6.2007 Репутация: нет Всего: 6 |
да, слишком многого я хочу. В итоге принял решение выбирать только по существованию определенных префиксов/постфиксов типа "ул.,пр-зд,пер." и др.
второй день пытался сделать более универсально, но, видно, не получится. -------------------- TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games). сайт гильдии |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
в твоем варианте может быть ул. и спереди названия как и после , это очень тяжко учесть .... да и смотрю что инфа почти свободно набиралась
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Можно как вариант сначала удалять из текста некоторые части, слова, символы, а потом разбирать его регуляркой.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |