我正在尝试使用python中的正则表达式匹配[...]块内的' - ',但是,我不确定如何实现这一点,因为' - '表示该块中的范围。
编辑:我失败的正则表达式:
regex = re.compile("^[0-9+-*/]+$")
答案 0 :(得分:9)
来自the docs:
如果您想在集合中包含
']'
或'-'
,请在其前面加上反斜杠,或将其作为第一个字符。
答案 1 :(得分:6)
只需将其放在[]
(字符类)的开头:
regex = re.compile("^[-0-9+*/]+$")
为什么会有效?
当你将连字符放在字符类的开头时,大多数正则表达式引擎都足够聪明,意识到你的意思是一个字面连字符(因为你不能指明没有开头的范围)。