python正则表达式,用于获取二进制数的1和1之间的最大零数
我需要找到一个正则表达式来计算1和二进制数之间的最大零数。我尝试了以下方法来获得1之间的最大零数。即如果我的二进制数是110001001,它应该返回3,如果我的二进制数是10010000001,那么它应该返回6python正则表达式,用于获取二进制数的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:
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等数字的预期输出是多少?