PYTHON – Captura contenidos dentro de llaves

Entonces, como parte de mi aplicación, necesito leer los datos de un archivo de texto y obtener elementos entre corchetes.

p.ej:

Servidor 1 {

/ directorio1 / directorio2

}

Servidor_2 {

/ directorio1

/ directorio2

}

Entonces algo como, si Server == Server_1 , imprima los directorios.

Saludos cordiales,

Miguel

Puedes probar con esto:

 \{(.*?)\} 

Explicación

  1. \{ matches the character { literally (case sensitive)
  2. (.*?) 1st Capturing Group
  3. .*? coincide con cualquier personaje
  4. *? Cuantificador: coincide entre cero y tiempos ilimitados, el menor número de veces posible, expandiéndose según sea necesario (flojo)
  5. \} coincide con el carácter } literalmente (distingue entre mayúsculas y minúsculas)

Código de ejemplo para extraer el contenido dentro del soporte:

  import re regex = r"\{(.*?)\}" test_str = ("Server_1 {\n" "/directory1 /directory2\n\n" "}\n" "Server_2 {\n\n" "/directory1\n\n" "/directory2\n\n" "}") matches = re.finditer(regex, test_str, re.MULTILINE | re.DOTALL) for matchNum, match in enumerate(matches): for groupNum in range(0, len(match.groups())): print (match.group(1)) 

Ejecuta el código aquí