fork download
  1. import re
  2.  
  3. s = "3NUL<123>lkjasdf lfdl;kja (432) adsfa sd 4ETX<342> sdfasdf asfds asdfa4(1 234) \n\n4ETX<345> asdfasdf\n\nNULSOH<342> sadfasd fasasdf asd 4ETX<345> asdfasdf "
  4.  
  5. #non-overlapping
  6. p = re.compile(r'(CAN|NUL|E(?:TX|NQ|SC)|S(?:OH|UB))(?:(?!\1).)*', re.DOTALL)
  7. print([x.group(0) for x in p.finditer(s)])
  8.  
  9. #overlapping
  10. p = re.compile(r'(?=((CAN|NUL|E(?:TX|NQ|SC)|S(?:OH|UB))(?:(?!\2).)*))', re.DOTALL)
  11. print([x.group(1) for x in p.finditer(s)])
Success #stdin #stdout 0.01s 8968KB
stdin
Standard input is empty
stdout
['NUL<123>lkjasdf lfdl;kja  (432) adsfa sd 4ETX<342> sdfasdf asfds  asdfa4(1 234)  \n\n4ETX<345> asdfasdf\n\n', 'NULSOH<342> sadfasd fasasdf asd 4ETX<345> asdfasdf ']
['NUL<123>lkjasdf lfdl;kja  (432) adsfa sd 4ETX<342> sdfasdf asfds  asdfa4(1 234)  \n\n4ETX<345> asdfasdf\n\n', 'ETX<342> sdfasdf asfds  asdfa4(1 234)  \n\n4', 'ETX<345> asdfasdf\n\nNULSOH<342> sadfasd fasasdf asd 4', 'NULSOH<342> sadfasd fasasdf asd 4ETX<345> asdfasdf ', 'SOH<342> sadfasd fasasdf asd 4ETX<345> asdfasdf ', 'ETX<345> asdfasdf ']