fork(3) download
  1. import re
  2. from functools import partial
  3.  
  4. pattern = '^[\w-]*_(?P<pos>[A-Z]\d{2})_T\d{4}(?P<fID>F\d{3})L\d{2}A\d{2}(?P<zID>Z\d{2})(?P<cID>C\d{2})\.tif$'
  5. filename = '151006_655866_Z01_T0001F015L01A02Z01C03.tif'
  6.  
  7.  
  8. def replace_closure(subgroup, replacement, m):
  9. if m.group(subgroup) not in [None, '']:
  10. start = m.start(subgroup)
  11. end = m.end(subgroup)
  12. return m.group()[:start] + replacement + m.group()[end:]
  13.  
  14. subgroup_list = ['pos', 'fID', 'zID', 'cID']
  15. replacement = '---'
  16.  
  17. for subgroup in subgroup_list:
  18. print re.sub(pattern, partial(replace_closure, subgroup, replacement), filename)
  19.  
Success #stdin #stdout 0.01s 8968KB
stdin
Standard input is empty
stdout
151006_655866_---_T0001F015L01A02Z01C03.tif
151006_655866_Z01_T0001---L01A02Z01C03.tif
151006_655866_Z01_T0001F015L01A02---C03.tif
151006_655866_Z01_T0001F015L01A02Z01---.tif