Extraer palabras entre delimitadores en python

De la siguiente cadena, quiero extraer las palabras entre delimitadores [ ] como 'Service Current','Service','9991','1.22' :

 str='mysrv events Generating Event Name [Service Current], Category [Service] Test [9991] Value [1.22]' 

¿Cómo puedo extraer el mismo en python?

Gracias de antemano Kris

Primero, evite usar str como nombre de variable. str ya tiene un significado en Python y al definirlo como otra cosa, confundirás a la gente.

Habiendo dicho eso puedes usar la siguiente expresión regular:

 >>> import re >>> print re.findall(r'\[([^]]*)\]', s) ['Service Current', 'Service', '9991', '1.22'] 

Esto funciona de la siguiente manera:

 \ [coincide con un literal [
 (iniciar un grupo de captura
 [^]] coincide con cualquier cosa excepto un cierre]
 * cero o más de los anteriores
 ) cerrar el grupo de captura
 \] coincide con un literal]

Una expresión regular alternativa es:

 r'\[(.*?)\]' 

Esto funciona mediante el uso de una coincidencia no codiciosa en lugar de hacer coincidir cualquier cosa excepto ] .

puedes usar regex

 import re s = re.findall('\[(.*?)\]', str) 
 re.findall(r'\[([^\]]*)\]', str)