|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.01.2018, 16:33 | #1 |
Новичок
Джуниор
Регистрация: 10.01.2018
Сообщений: 1
|
Регулярные выражения
Добрый день, уважаемые форумчане!
Помогите, пожалуйста, решить проблему: есть строка вида 143301, обл. Московская, г. Дмитров, ул. Сиреневая, д. 50 или обл. Московская, г. Дмитров, ул. Сиреневая, д. 50 Ее нужно привести к такому виду: Дмитров Сиреневая 50. При этом вместо Московской области может быть любая другая, либо край, либо республика. Так же есть вероятность, что обозначения субъекта РФ впринципе не будет, что-то вроде "125009, г. Москва, ул. Тверская, д. 4". Вместо улицы может быть переулок, проезд, тупик, бульвар и т.д. Вместо города, соответственно, может быть любой другой, не факт, что город, но населенный пункт(г. , п. , с. , д. , etc). Понимаю: задача может быть решена регулярными выражениями. Не понимаю: регулярных выражений. Сижу с ними уже недели две. Мозг упорно отказывается вникнуть в материал. Очень прошу, помогите! Голова скоро лопнет |
10.01.2018, 17:59 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Задача не такая уж и тривиальная, если набор данных может быть в сильно разном виде. Через регулярки я бы это не делал.
Если запятые везде, то разбиваем строку на элементы через string.Split в итоге получим набор строк: 143301 обл. Московская г. Дмитров ул. Сиреневая д. 50 каждую строку уже отдельно анализировать. первая строка у нас индекс, регион или город. int.TryParse("143301") - отлично. это почтовый индекс (можно еще на длину проверить и т.п.). заносим в переменную, если нужен. вторая строка у нас или регион или город. ищем в ней слово область, обл., край, республика,... Нашлось? Значит тут область. обл. в начале строки - значит удаляем первую часть, обл. в конце строки - удаляем хвост. потому что может быть Московская область или обл. Московская. на третьей строке у нас уже остаётся надежда, что это населённый пункт и ищем город, г., п., пгт.,... в зависимости от исходной задачи и требований я бы копал в сторону готовых библиотек (для точности чтобы умели ФИАС/КЛАДР использовать) и всяких API от яндекс/гугл карт (что-то для парсинга адресов у них было вроде). |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регулярные выражения | ololo-schoolboy | PHP | 2 | 15.05.2011 13:03 |
Регулярные выражения | Vanta11a | Помощь студентам | 2 | 05.05.2011 12:44 |
Регулярные выражения | papos | Помощь студентам | 0 | 26.04.2011 20:12 |
регулярные выражения | vvsh | PHP | 3 | 22.04.2011 17:09 |