|
|
|
Форматирование название улицы18.09.2021, 01:20. Показов 3188. Ответов 12
Добрый день!
В почтовых адресах бывает элемент - "просек" Проблема в том, что номер просека может записываться в двух вариантах, например: - "1-й просек" - "просек 1-й" Диапазон номеров от 1 до 99 Примеры: Микрорайон Никольско-Архангельский, просек 1-й, д. 14 Мкр. Железнодорожный, 12-й просек, кв-л Живописный, д. 3, лит. а, Подскажите как получить вариант с номером в начале, например - "1-й просек" ? Пробую искать ближайшую цифру в строке к слову "просек", но получается какая-то путаница с индексами
0
|
|
| 18.09.2021, 01:20 | |
|
Ответы с готовыми решениями:
12
Создать структуру, содержащую название улицы, номер дома, количество жильцов |
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
||||||
| 18.09.2021, 05:13 | ||||||
|
Доброго времени, самый примитивный вариант, но к вам еще обязательно зайдут маги регулярок, коим я к сожалению не являюсь.
1
|
||||||
|
|
|
| 18.09.2021, 07:56 [ТС] | |
|
enx, спасибо за ответ.
Некоторые мои соображения: Единственным более-менее надежным признаком номера просека является окончание "-й" после номера. Попробую с этим признаком что-то сделать. Хотя можно и написать "просек-1" или "1-просек" Вчерашний мой вариант - искать ближайшую цифру рядом со словом "просек" не подходит. Ближе номера просека может оказаться номер дома. И разделителем элементов адреса может быть пробел, а не запятая...
0
|
|
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
|
| 18.09.2021, 08:53 | |
|
VistaSV30, а зачем, смотрите, у вас могут быть 2 ситуации насколько я понял:
1. Элемент адреса начинается на 0 индексе с 'просек'. ( .startswith() ) = 'просек 1-й' 2. Элемент адреса заканчивается с N индекса на 'просек'. ( .endswith() ) = '12-й просек' Бывают другие? Добавлено через 1 минуту Если бывают, кидайте примеры, гляну как сделать более универсально, но то, что я написал выше, работает при условии соблюдения форматирования разделителя, что там будет дальше после этого слова - не важно, развернет по срезам.
0
|
|
|
|
|
| 18.09.2021, 08:55 [ТС] | |
|
В разных базах данных могут быть разные варианты и каждый отдельный человек может проявить фантазию и как-то по своему написать адрес.
Спасибо за предложение, сейчас отойду на часок. Вернусь попробую еще варианты
0
|
|
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
|
| 18.09.2021, 08:59 | |
|
А могут быть ситуации, когда просек входит в строку более, чем 1 раз?
0
|
|
|
|
||||||
| 18.09.2021, 09:08 [ТС] | ||||||
|
С городами, поселками, сёлами и т.п. такое бывает. г. Троицк был включен в состав Москвы и теперь могут попадаться адреса
"г. Москва, г. Троицк, ул. ....". С просеками такого пока мне не встречалось. Я нашел такие варианты написания просека:
0
|
||||||
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
||||||
| 18.09.2021, 09:15 | ||||||
|
Держите так, чтобы вы вообще о разделителях не переживали, но повторю, import re позволяет сделать это в строку, я с этой библиотекой не работаю вообще, ибо мне циферки и матрицы нужны. Но вам она точно поможет.
1
|
||||||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
||||||
| 18.09.2021, 09:52 | ||||||
|
Больше кейсов надо. Но вот так вроде относительно универсально. Части адреса (город, улица и проч. разделены запятыми).
1
|
||||||
|
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
|
|
| 18.09.2021, 10:02 | |
|
iSmokeJC, тут еще проблема будет, пока автор не даст выборку на 5-10 примеров, допустим что делать в ситуации, когда у нас так:
Микрорайон Просековсого 14 )))
0
|
|
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|||
| 18.09.2021, 10:17 | |||
r'(?i)(?<=\Wпросек\W[^,]*?)\d+|\d+(?=[^,]*?\Wпросек\W)'Добавлено через 56 секунд Проблем может всплыть куча, почему я и сказал
1
|
|||
|
|
||||||
| 18.09.2021, 10:56 [ТС] | ||||||
|
Спасибо еще раз за помощь.
Вот несколько вариантов, то что смог пока напридумывать.
![]() А как это сделать понятным для компьютера - большой вопрос
0
|
||||||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 18.09.2021, 11:14 | |
|
VistaSV30, ну вот, последняя регулярка все матчит
1
|
|
| 18.09.2021, 11:14 | |
|
Помогаю со студенческими работами здесь
13
Название улицы и номер дома в ячейке написаны слитно. Как вставить пробел между ними? Выдать для каждого адреса имя улицы, не включая тип улицы Название улицы и номер дома в ячейке написаны слитно. Как вставить пробел между ними макросом Вывести название улицы которая имеет больше всего домов и общее количество квартир для каждой из улиц Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|