import re
string_to_check = "other_text...lalalaI want this partlalala...other_text"
p = re.compile("lalala(I want this part)lalala") # regex pattern
m = p.search(string_to_check) # use p.match if what you want is always at beginning of string
if m:
print m.group(1)
Al tratar de convertir un programa de Perl a Python que analiza los nombres de las funciones de los módulos, me encontré con este problema, he recibido un error que dice "grupo" no estaba definido. Pronto me di cuenta de que se estaba lanzando la excepción porque p. coincidencia/p. búsqueda devuelve 0 si no hay una cadena coincidente.
Por lo tanto, el operador del grupo no puede funcionar en él. Por lo tanto, para evitar una excepción, verifique si se ha almacenado una coincidencia y luego aplique el operador de grupo.
import re
filename = './file_to_parse.py'
p = re.compile('def (\w*)') # \w* greedily matches [a-zA-Z0-9_] character set
for each_line in open(filename,'r'):
m = p.match(each_line) # tries to match regex rule in p
if m:
m = m.group(1)
print m
Very smart idea :) – Linh