python - Hacer coincidir el texto entre dos cadenas con expresión regular
regex python-2.x (2)
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 su 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. ''
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 obtener todo lo que sería: ". Parte 2".
Estoy usando Python 2x.
Utilice
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.