使用正则表达式和re在括号之间获取文本

时间:2012-03-01 02:20:35

标签: python regex

我有一系列字符串,我想从中提取特定内容:

['link.description', 'button.text]] </li>']

我想获得以下输出:

link.description
button.text

对于数组中的每个字符串,我执行以下操作:

str = re.findall('(.*?)\]+', str)

使用上面的正则表达式,我只能得到button.text。我如何获得link.description和button.text?我尝试使用:

str = re.findall('(.*?)\]*', str)

但是上面只是在返回str中给了我一堆空白。

2 个答案:

答案 0 :(得分:3)

对于像这样的简单任务,您不需要正则表达式。此外,如果没有正则表达式,您的代码可能更有意义。

在这种情况下,您只需使用str.split()

即可
>>> thingies = ['link.description', 'button.text]] </li>']
>>> different_thingies = [thingy.split(']')[0] for thingy in thingies]
>>> different_thingies
['link.description', 'button.text']

答案 1 :(得分:0)

嗯,试试\] +。那是你要的吗? (Asterisk说“匹配零次或更多次”,你可以看到 - 经常匹配。)