Unir texto entre dos cadenas con expresiones regulares

Me gustaría usar una expresión regular que coincida con cualquier texto entre dos cadenas:

Part 1. Part 2. Part 3 then more text 

En este ejemplo, me gustaría buscar “Parte 1” y “Parte 3” y luego encontrar todo lo que sería: “Parte 2”.

Estoy usando Python 2x.

Usar re.search

 >>> import re >>> s = 'Part 1. Part 2. Part 3 then more text' >>> re.search(r'Part 1\.(.*?)Part 3', s).group(1) ' Part 2. ' >>> re.search(r'Part 1(.*?)Part 3', s).group(1) '. Part 2. ' 

O use re.findall , si hay más de una ocurrencia.

Con expresión regular:

 >>> import re >>> s = 'Part 1. Part 2. Part 3 then more text' >>> re.search(r'Part 1(.*?)Part 3', s).group(1) '. Part 2. ' 

Sin expresión regular, este funciona para tu ejemplo:

 >>> s = 'Part 1. Part 2. Part 3 then more text' >>> a, b = s.find('Part 1'), s.find('Part 3') >>> s[a+6:b] '. Part 2. '