python正则表达式不匹配最后一个字符

时间:2017-10-25 16:16:22

标签: python

我试图匹配由/ inside []分隔的数字,但不包括最后一个字符,为什么会这样?但没有/

import re
regex = r"\[.+?\]"
Sample1= "text text text[One]"
Sample2= "text text text[One/Two]"
Sample3= "text text text[One/Two/Three]"
lines=[Sample1,Sample2,Sample3]
print([re.findall(r"\[(.+?)[^\/]\]", s) for s in lines])

现在的出局是:

[['On'], ['One/Tw'], ['One/Two/Thre']]

我想成为:

[['One'], ['One', 'Two'], ['One','Two','Three']]

正确的正则表达式是什么?

1 个答案:

答案 0 :(得分:1)

matches = [re.findall(r"\[(.+[^\/])\]", s) for s in lines]
print(matches)

这会奏效。我纠正了正则表达式。