您使用*允许空匹配:
'first' -> matched':' -> not in the character class but, as the pattern can be empty due to the *, an empty string is matched -->'''second' -> matched'$' -> can contain an empty string before, an empty string is matched -->''
引用以下文档
re.findall():
空匹配项将包括在结果中,除非它们碰到另一个匹配项的开头。
您在子结果中看不到空匹配的原因在以下文档中进行
re.sub()了说明:
模式的空匹配仅在不与上一个匹配相邻时才被替换。
尝试这个:
re.sub('(?:Choucroute garnie)*', '#', 'ornithorynque')
现在这个:
print re.sub('(?:nithorynque)*', '#', 'ornithorynque')
没有连续的#
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)