Advertisement
philyuchkoff

Untitled

May 3rd, 2018
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.64 KB | None | 0 0
  1. import re
  2. # Что есть:
  3. # 140002 ЛЮБЕРЦЫ 2 ОКТЯБРЬСКИЙ ПР 123/4-115
  4. # 140002 ЛЮБЕРЦЫ 02 ОКТЯБРЬСКИЙ ПР 123/4-115
  5. # 140002 ЛЮБЕРЦЫ 002 ОКТЯБРЬСКИЙ ПР 123/4-115
  6. # 140002 ЛЮБЕРЦЫ 00002 ОКТЯБРЬСКИЙ ПР 123/4-115
  7. # 140002 ЛЮБЕРЦЫ 140002 ОКТЯБРЬСКИЙ ПР 123/4-115
  8. # После названия города может идти цифра, совпадающая с концом индекса. Это номер почтового отделения. Надо убрать.
  9. #
  10. adr1 = "140002 ЛЮБЕРЦЫ 2 ОКТЯБРЬСКИЙ ПР 123/4-115"
  11. print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr1))
  12. adr2 = "140002 ЛЮБЕРЦЫ 02 ОКТЯБРЬСКИЙ ПР 123/4-115"
  13. print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr2))
  14. adr3 = "140002 ЛЮБЕРЦЫ 002 ОКТЯБРЬСКИЙ ПР 123/4-115"
  15. print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr3))
  16. adr4 = "140002 ЛЮБЕРЦЫ 140002 ОКТЯБРЬСКИЙ ПР 123/4-115"
  17. print(re.sub(r'(\d{6})(\D*)(\s\d*)(\D*\w*\D\w*\W*\w*)', r'\g<1>\g<2>\g<4>', adr4))
  18.  
  19. # В результате получаю:
  20. >>> 140002 ЛЮБЕРЦЫ ОКТЯБРЬСКИЙ ПР 123/4-115
  21.  
  22. # Можно ли считать выполненное таким образом задание правильно выполненным?
  23. # Можно ли как-то упростить regexp, чтобы оно не выглядело таким громоздким? Например, заменить группу (\D*\w*\D\w*\W*\w*) на (.)?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement