在python中,如何阻止它返回空字符串列表?
>>> re.findall(re.compile("(?!lala)"),"lala")
['', '', '', '']
答案 0 :(得分:4)
您正在寻找一个空字符串,后面没有文字lala
,这是一个负面的先行断言。
由于有4个这样的位置带有空字符串(在字母之间和结尾处),因此有4个空匹配。
它正在返回您正在寻找的东西,也许您正在寻找其他东西?
答案 1 :(得分:-1)
首先:(?!lala)
不是一个非常好的正则表达式。 (你自己发现了)
其次,findall会寻找它能找到的任何东西,因为你并不真正寻找任何东西,而你正在寻找4个字符,你会得到4个空字符串。
解决这个问题,你应该帮助你的正则表达式
我已经复制了你的正则表达式和一些随机行来向你展示一个例子。也在下面:
^(?!lala).*$
将匹配任何不以lala开头的行。 因为你没有把你想要的确切清楚,这就是我认为你要做的事情。