0-63 之间数字的 Python 正则表达式

我已经编写了这个正则表达式来匹配上述范围内的数字,但它不能正常工作,例如它匹配“00”和“64”,但我不明白为什么。我的逻辑是“0 或 9 之间的数字”或“10-59 之间的数字”或“60-63 之间的数字”。


import re



def six_bit_number(n):

    if re.match("([0-9]|[1-5][0-9]|6[0-3])", str(n)):

        return True

    return False


catspeake
浏览 188回答 3
3回答

叮当猫咪

re.match在输入的开头查找匹配项,但不介意匹配项后是否还有文本。您可以添加一个锚点以确保它也检查字符串的结尾:r"([0-9]|[1-5][0-9]|6[0-3])\Z"

江户川乱折腾

只需更改为re.fullmatch工作了。

潇湘沐

试试下面的正则表达式:^([0-9]|[1-5][0-9]|(6[0123]))$ [Include Global and Multiline flag]正则表达式的理解:[0-9]--> 匹配从 0 到 9 的单个数字[1-5][0-9]--> 匹配从 10 到 59 的双位数(6[0123])--> 匹配 60、61、62 和 63
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python