From the below string, I want to extract the words between delimters [ ] like 'Service Current','Service','9991','1.22':
str='mysrv events Generating Event Name [Service Current], Category [Service] Test [9991] Value [1.22]' How can I extract the same in python?
Thanks in advance Kris
3 Answers
First, avoid using str as a variable name. str already has a meaning in Python and by defining it to be something else you will confuse people.
Having said that you can use the following regular expression:
>>> import re >>> print re.findall(r'\[([^]]*)\]', s) ['Service Current', 'Service', '9991', '1.22'] This works as follows:
\[ match a literal [ ( start a capturing group [^]] match anything except a closing ] * zero or more of the previous ) close the capturing group \] match a literal ]
An alternative regular expression is:
r'\[(.*?)\]' This works by using a non-greedy match instead of matching anything except ].
you can use regex
import re s = re.findall('\[(.*?)\]', str) 1re.findall(r'\[([^\]]*)\]', str)