我已經(jīng)編寫(xiě)了這個(gè)正則表達(dá)式來(lái)匹配上述范圍內(nèi)的數(shù)字,但它不能正常工作,例如它匹配“00”和“64”,但我不明白為什么。我的邏輯是“0 或 9 之間的數(shù)字”或“10-59 之間的數(shù)字”或“60-63 之間的數(shù)字”。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 回答

叮當(dāng)貓咪
TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
re.match
在輸入的開(kāi)頭查找匹配項(xiàng),但不介意匹配項(xiàng)后是否還有文本。您可以添加一個(gè)錨點(diǎn)以確保它也檢查字符串的結(jié)尾:
r"([0-9]|[1-5][0-9]|6[0-3])\Z"

瀟湘沐
TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
試試下面的正則表達(dá)式:
^([0-9]|[1-5][0-9]|(6[0123]))$ [Include Global and Multiline flag]
正則表達(dá)式的理解:
[0-9]--> 匹配從 0 到 9 的單個(gè)數(shù)字
[1-5][0-9]--> 匹配從 10 到 59 的雙位數(shù)
(6[0123])--> 匹配 60、61、62 和 63
添加回答
舉報(bào)
0/150
提交
取消