Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
812 views
in Technique[技术] by (71.8m points)

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

re.findall is your friend here:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...