Python正则表达式奇怪的行为

f0b*_*b0s 9 python regex

我发现了一些我无法用Python re模块解释的东西.编译(a*)*(a*|b)*抛出错误:

引发错误,v#无效表达sre_constants.error:没有什么可重复的

我在javascript中测试了这个正则表达式,似乎没问题.

这是一个错误吗?

Mu *_*ind 9

是的,这是一个错误(或至少是错误的).它抱怨如果a*没有匹配,它不知道如何捕获0或更多"nothings".


lza*_*zap 5

Python中的一个错误.

http://bugs.python.org/issue2537

http://bugs.python.org/issue214033

也许"虫子"在这里不是正确的词.不同的解释......


the*_*oom 5

a*可以为null,给出(null)*对解释器没有意义的东西.(a*|b)也可以为null,因为它可以评估为或者.(b)或者(a*)你可以使用(a+)*(a+|b)*