python正则表达式,用于获取二进制数的1和1之间的最大零数

python正则表达式,用于获取二进制数的1和1之间的最大零数,python,regex,Python,Regex,我需要找到一个正则表达式来计算1和二进制数之间的最大零数。我尝试了以下方法来获得1之间的最大零数。即如果我的二进制数是110001001,它应该返回3,如果我的二进制数是10010000001,那么它应该返回6 import re binaryarray=['110001001','10101001','10100001','10010000001'] p=r'(?<=1)*(0+)(?=1)*(?<=1)*(0+)(?=1)*' for b in binaryarray:

我需要找到一个正则表达式来计算1和二进制数之间的最大零数。我尝试了以下方法来获得1之间的最大零数。即如果我的二进制数是110001001,它应该返回3,如果我的二进制数是10010000001,那么它应该返回6

import re
binaryarray=['110001001','10101001','10100001','10010000001']
p=r'(?<=1)*(0+)(?=1)*(?<=1)*(0+)(?=1)*'
for b in binaryarray:
    match1=re.search(p,b,re.I)
    if match1:
        print (b)
        if (len(match1.group(1)) > len(match1.group(2))):
             print (len(match1.group(1)))
        else:
             print (len(match1.group(2)))
    else:
        print ("no match")
重新导入
二进制数组=['110001001'、'10101001'、'10100001'、'10010000001']
p=r'(?IIUC,你可以试试这个

import re
binaryarray=['110001001','10101001','10100001','10010000001', '00', '1']
for b in binaryarray:
    found = re.findall("(?<=1)(0+)1", b)
    if len(found) == 0:     
        print ("no match")
    else:
        print(len(max(found)))
3
2
4
6
no match           
no match
重新导入
二进制数组=['110001001'、'10101001'、'10100001'、'10010000001'、'00'、'1']
对于二进制数组中的b:

found=re.findall((?您可以执行以下操作:

import re
len(max(re.findall("(?:0)+"), b)))  # if b is an element in your list

10100、1或2等数字的预期输出是多少?