我需要以「number-number」格式查找數字範圍。該數字應該在0-3000範圍內。所以我想出了這個正則表達式python中的數值範圍的正則表達式
match = re.search(r'^[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]-[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]',sentence)
當我跑了,我想只提取句子中的56-900的方案,但該方案提取其他數字也像2016年,CLP2012等。我想只提取在它們之間有「 - 」的數字。我的模式出了什麼問題。
您應該使用'「[0-9] + - [0-9] +」'。 –
「|」運算符的優先級最低,所以即使例如'[1-9] [0-9]'是一個可接受的模式:你應該在連字符之前和之後加上兩個部分的括號。另外,應該存在更緊湊的配方。 – rrobby86
爲什麼不''[123] \ d {0,3}「'(或'」[0-3] \ d {0,3}「'包含0)? – user2314737