fork download
  1. import re
  2. import pprint
  3.  
  4. pattern = r"(?:\s*\+\s*)?([^:]+)\s*:\s*([^:]+)(?=\+[^:+]*:|$)"
  5.  
  6. s = ("TOP : Cotton + Embroidered ( 2 Mtr) \n"
  7. "BOTTOM : Cotton + Solid (2 Mtr) \n"
  8. "DUPATTA : Chiffon + Lace Work ( 2 Mtr) \n"
  9. "TYPE : Un Stitched\n"
  10. "COLOUR : Multi Colour \n"
  11. "CONTAINS : 1 TOP WITH LINING 1 BOTTOM & 1 DUPATTA\n"
  12. "Country of Origin: India\n\n"
  13. "Top Fabric: Cotton Cambric + Top Length: 0-2.00\n"
  14. "Bottom Fabric: Cotton Cambric + Bottom Length: 0-2.00\n"
  15. "Dupatta Fabric: Nazneen + Dupatta Length: 0-2.00\n"
  16. "Lining Fabric: Cotton Cambric\n"
  17. "Type: Un Stitched\n"
  18. "Pattern: Printed\n"
  19. "Multipack: 3 Top\n"
  20. "Country of Origin: India")
  21.  
  22. dictionary = {}
  23. for m in re.finditer(pattern, s, re.MULTILINE):
  24. dictionary[m.group(1).strip()] = m.group(2).strip()
  25. pprint.pprint(dictionary)
Success #stdin #stdout 0.02s 9392KB
stdin
Standard input is empty
stdout
{'BOTTOM': 'Cotton + Solid (2 Mtr)',
 'Bottom Fabric': 'Cotton Cambric',
 'Bottom Length': '0-2.00',
 'COLOUR': 'Multi Colour',
 'CONTAINS': '1 TOP WITH LINING 1 BOTTOM & 1 DUPATTA',
 'Country of Origin': 'India',
 'DUPATTA': 'Chiffon + Lace Work ( 2 Mtr)',
 'Dupatta Fabric': 'Nazneen',
 'Dupatta Length': '0-2.00',
 'Lining Fabric': 'Cotton Cambric',
 'Multipack': '3 Top',
 'Pattern': 'Printed',
 'TOP': 'Cotton + Embroidered ( 2 Mtr)',
 'TYPE': 'Un Stitched',
 'Top Fabric': 'Cotton Cambric',
 'Top Length': '0-2.00',
 'Type': 'Un Stitched'}