如果我有这个字符串:
s = "this, that; talk, love, hate; good, bad, all good."
我想提取由 , ; 分隔的项目 或者 。
所以我想要的结果是:
["this", "that", "talk", "love", "hate", "good", "bad", "all good"]
如果我使用这个 Python 正则表达式:
re.findall(r"([a-z]+[,;.])+", s)
我得到结果:
['this,', 'that;', 'talk,', 'love,', 'hate;', 'good,', 'bad,', 'good.']
这与我想要的很接近,除了最后一项。
奇怪的是,如果我在第一个方括号中包含一个空格,如下所示:
re.findall(r"([a-z ]+[,;.])+", s)
然后我只得到这个结果:
[' all good.']
但是 findall() 应该找到所有结果,不是吗?有人可以解释这种奇怪的行为吗?