fork download
  1. import re
  2. p = re.compile(r'(?m)(^block\s*\d+).*(?:\n(?!block\s*\d).*)*\battrib\s*b=(\w+)')
  3. s = "block 1\n subblock 1.1\n attrib a=a1\n subblock 1.2\n attrib b=b1\nblock 2\n subblock 2.1\n attrib a=a2\nblock 3\n subblock 3.1\n attrib a=a3\n subblock 3.2\n attrib b=b3"
  4. print(p.findall(s))
Success #stdin #stdout 0.01s 9016KB
stdin
Standard input is empty
stdout
[('block 1', 'b1'), ('block 3', 'b3')]