Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- # Что есть:
- # 140002 ЛЮБЕРЦЫ 2 ОКТЯБРЬСКИЙ ПР 123/4-115
- # 140002 ЛЮБЕРЦЫ 02 ОКТЯБРЬСКИЙ ПР 123/4-115
- # 140002 ЛЮБЕРЦЫ 002 ОКТЯБРЬСКИЙ ПР 123/4-115
- # 140002 ЛЮБЕРЦЫ 00002 ОКТЯБРЬСКИЙ ПР 123/4-115
- # 140002 ЛЮБЕРЦЫ 140002 ОКТЯБРЬСКИЙ ПР 123/4-115
- # После названия города может идти цифра, совпадающая с концом индекса. Это номер почтового отделения. Надо убрать.
- #
- adr1 = "140002 ЛЮБЕРЦЫ 2 ОКТЯБРЬСКИЙ ПР 123/4-115"
- print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr1))
- adr2 = "140002 ЛЮБЕРЦЫ 02 ОКТЯБРЬСКИЙ ПР 123/4-115"
- print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr2))
- adr3 = "140002 ЛЮБЕРЦЫ 002 ОКТЯБРЬСКИЙ ПР 123/4-115"
- print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr3))
- adr4 = "140002 ЛЮБЕРЦЫ 140002 ОКТЯБРЬСКИЙ ПР 123/4-115"
- print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr4))
- # В результате получаю:
- >>> 140002 ЛЮБЕРЦЫ ОКТЯБРЬСКИЙ ПР 123/4-115
- # Можно ли считать выполненное таким образом задание правильно выполненным?
- # Можно ли как-то упростить regexp, чтобы оно не выглядело таким громоздким? Например, заменить группу (\D*\w*\D\w*\W*\w*) на (.)?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement