Python 如何匹配正则表达式中n次的倍数
我正在编写一个python程序,将二进制转换为十六进制,并将十六进制转换为二进制(这是一个学习练习,就像任何东西一样),为了确定传递给函数的字符串的格式是否正确,我将对照正则表达式对其进行检查 我目前正在尝试匹配任何4位二进制格式Python 如何匹配正则表达式中n次的倍数,python,regex,binary,Python,Regex,Binary,我正在编写一个python程序,将二进制转换为十六进制,并将十六进制转换为二进制(这是一个学习练习,就像任何东西一样),为了确定传递给函数的字符串的格式是否正确,我将对照正则表达式对其进行检查 我目前正在尝试匹配任何4位二进制格式10101010…,因此任何4位,n次。我当前尝试使用的正则表达式是 ([01]{4})+ 但是,这允许长度不是4倍的字符串通过。“整个”功能是 def biToHex(biStr): biRegex = "([01]{4})+" if bool(re
10101010…
,因此任何4位,n次。我当前尝试使用的正则表达式是
([01]{4})+
但是,这允许长度不是4倍的字符串通过。“整个”功能是
def biToHex(biStr):
biRegex = "([01]{4})+"
if bool(re.match(biRegex, biStr)) == 0:
return "BIN NOT FOUND"
nibbles = [biStr[i:i+4] for i in range(0, len(biStr), 4)]
print nibbles
我知道我目前无法处理包含空格的字符串,但这超出了这个问题的范围
我可以使用什么正则表达式来匹配适当的字符串?问题在于您没有锚定正则表达式。如果您在末尾添加了一个
$
,它将执行您想要的操作。问题只是您没有锚定正则表达式。如果您在末尾添加了一个$
,它将执行您想要的操作。问题只是您没有锚定正则表达式。如果您在末尾添加了一个$
,它将执行您想要的操作。问题只是您没有锚定正则表达式。如果您在末尾添加了一个$
,它将执行您想要的操作
def biToHex(biStr):
biRegex = "^([01]{4})+$"
if bool(re.match(biRegex, biStr)) == 0:
return "BIN NOT FOUND"
nibbles = [biStr[i:i+4] for i in range(0, len(biStr), 4)]
print nibbles
print biToHex("010101011010")
已尝试此操作。它正在工作。已添加锚
已尝试此操作。它正在工作。已添加锚
已尝试此操作。它正在工作。已添加锚
尝试了这个。它正在工作。添加了锚。布尔(re.match(biRegex,biStr))==0的目的是什么?@Kasra将
match
的输出转换为布尔,并检查是否返回false?这是我用python写的第一件事,所以我正在对它进行破解。bool(re.match(biRegex,biStr))==0?@Kasra将match
的输出转换为bool并检查是否返回false?这是我用python写的第一件事,所以我正在对它进行破解。bool(re.match(biRegex,biStr))==0?@Kasra将match
的输出转换为bool并检查是否返回false?这是我用python写的第一件事,所以我正在对它进行破解。bool(re.match(biRegex,biStr))==0?@Kasra将match
的输出转换为bool并检查是否返回false?这是我用python写的第一件事,所以我真的在一起破解它。