Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何匹配正则表达式中n次的倍数_Python_Regex_Binary - Fatal编程技术网

Python 如何匹配正则表达式中n次的倍数

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

我正在编写一个python程序,将二进制转换为十六进制,并将十六进制转换为二进制(这是一个学习练习,就像任何东西一样),为了确定传递给函数的字符串的格式是否正确,我将对照正则表达式对其进行检查

我目前正在尝试匹配任何4位二进制格式
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写的第一件事,所以我真的在一起破解它。