fork download
  1. import re
  2.  
  3. string = """
  4. Male Name=Tony;
  5. Female Name=Alice.1;
  6. Female Name=Alice.2;
  7. Male Name=Ben;
  8. Male Name=Shankar;
  9. Male Name=Bala;
  10. Female Name=Nina;
  11. ###
  12. Female Name=Alex.1;
  13. Female Name=Alex.2;
  14. Male Name=James;
  15. Male Name=Graham;
  16. Female Name=Smith;
  17. ###
  18. Female Name=Xing;
  19. Female Name=Flora;
  20. Male Name=Steve.1;
  21. Male Name=Steve.2;
  22. Female Name=Zac;
  23. ###
  24. """
  25.  
  26. hashrx = re.compile(r'^###$', re.MULTILINE)
  27. namerx = re.compile(r'Name=\w+(\.\d+)?;')
  28.  
  29. new_string = '###'.join([namerx.sub(r"Name=Class_{}\1".format(idx + 1), part)
  30. for idx,part in enumerate(hashrx.split(string))])
  31. print(new_string)
  32.  
Success #stdin #stdout 0.02s 28376KB
stdin
Standard input is empty
stdout
Male    Name=Class_1  
Female  Name=Class_1.1 
Female  Name=Class_1.2
Male    Name=Class_1 
Male    Name=Class_1 
Male    Name=Class_1 
Female  Name=Class_1 
###
Female  Name=Class_2.1 
Female  Name=Class_2.2
Male    Name=Class_2 
Male    Name=Class_2 
Female  Name=Class_2  
###
Female  Name=Class_3
Female  Name=Class_3
Male    Name=Class_3.1
Male    Name=Class_3.2 
Female  Name=Class_3  
###