fork download
  1. import re
  2. p = re.compile(r'^:([^:]+):([^:]+)', re.MULTILINE)
  3. s = ":1:text\ntext\n\n:20:text\n\n:21:text\ntext\ntext\n\n:22: \n\n:25:aa\naa\naaaaa"
  4. print([[x.group(1)] + re.findall(r".+\n*", x.group(2)) for x in p.finditer(s)])
  5. print([(x, "({})".format(re.sub(r".+(?!\n*$)\n+", r"\g<0>), (", y))) for x, y in p.findall(s)])
  6.  
Success #stdin #stdout 0.01s 9992KB
stdin
Standard input is empty
stdout
[['1', 'text\n', 'text\n\n'], ['20', 'text\n\n'], ['21', 'text\n', 'text\n', 'text\n\n'], ['22', ' \n\n'], ['25', 'aa\n', 'aa\n', 'aaaaa']]
[('1', '(text\n), (text\n\n)'), ('20', '(text\n\n)'), ('21', '(text\n), (text\n), (text\n\n)'), ('22', '( \n\n)'), ('25', '(aa\n), (aa\n), (aaaaa)')]