我需要找到格式为“数字-数字”的数值范围。数字应在0-3000的范围内。因此,我提出了以下正则表达式:
当我运行程序时,我只想从句子中提取56-900,但程序还提取了其他数字,如2016、CLP2012等。我想要提取只有"-"连接的数字。我的模式有什么问题。
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]+"
。 - Carles Mitjans|
运算符的优先级最低,因此即使是[1-9][0-9]
也是一个被接受的模式:你应该在连字符前后括起来。此外,可能存在更紧凑的表达方式。 - rrobby86"[123]\d{0,3}"
(或者"[0-3]\d{0,3}"
来包括0)? - user2314737