Shihan Shihan - 21 days ago 5
Python Question

Python: How to get multiple elements inside square brackets

I have a string/pattern like this:

[xy][abc]


I try to get the values contained inside the square brackets:


  • xy

  • abc



There are never brackets inside brackets. Invalid:
[[abc][def]]


So far I've got this:

import re
pattern = "[xy][abc]"
x = re.compile("\[(.*?)\]")
m = outer.search(pattern)
inner_value = m.group(1)
print inner_value


But this gives me only the inner value of the first square brackets.

Any ideas? I don't want to use string split functions, I'm sure it's possible somehow with RegEx alone.

Answer

re.findall is your friend here:

>>> import re
>>> sample = "[xy][abc]"
>>> re.findall(r'\[([^]]*)\]',sample)
['xy', 'abc']
Comments