fork download
  1. import re
  2.  
  3. pattern = r"^(\*\s+\w+:\s)(.*(?:\n(?!\*\s+\w+:\s).*)*)"
  4.  
  5. s = ("* Major: This is a **Major** change\n"
  6. "* Minnor: This is is a minor change with a typo\n"
  7. "* Patch: This\n"
  8. "is a multiline\n"
  9. " patch")
  10.  
  11. result = re.findall(pattern, s, re.MULTILINE)
  12. print(result)
Success #stdin #stdout 0.04s 9520KB
stdin
Standard input is empty
stdout
[('* Major: ', 'This is a **Major** change'), ('* Minnor: ', 'This is is a minor change with a typo'), ('* Patch: ', 'This\nis a multiline\n  patch')]