Extracting words between delimiters [] in python

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 ].

2

you can use regex

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like