我已经编写了这个正则表达式来匹配上述范围内的数字,但它不能正常工作,例如它匹配“00”和“64”,但我不明白为什么。我的逻辑是“0 或 9 之间的数字”或“10-59 之间的数字”或“60-63 之间的数字”。import redef six_bit_number(n): if re.match("([0-9]|[1-5][0-9]|6[0-3])", str(n)): return True return False
3 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
re.match
在输入的开头查找匹配项,但不介意匹配项后是否还有文本。您可以添加一个锚点以确保它也检查字符串的结尾:
r"([0-9]|[1-5][0-9]|6[0-3])\Z"
潇湘沐
TA贡献1816条经验 获得超6个赞
试试下面的正则表达式:
^([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
添加回答
举报
0/150
提交
取消