繁体   English   中英

Python:如何在方括号内获取多个元素

[英]Python: How to get multiple elements inside square brackets

我有这样的字符串/模式:

[xy][abc]

我尝试获取方括号内包含的值:

  • y
  • abc

括号内从来没有括号。 无效: [[abc][def]]

到目前为止,我已经知道了:

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

但这只给了我第一个方括号的内部值。

有任何想法吗? 我不想使用字符串拆分功能,我敢肯定,仅RegEx就有可能。

re.findall是您的朋友在这里:

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

我怀疑您正在寻找re.findall

看到这个演示

import re
my_regex = re.compile(r'\[([^][]+)\]')
print(my_regex.findall('[xy][abc]'))
['xy', 'abc']

如果要遍历匹配而不是匹配字符串,则可以re.finditer 有关更多详细信息,请参见Python re docs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM