如何在正则表达式中匹配' - '在[..]内部

时间:2011-08-21 10:54:39

标签: python regex

我正在尝试使用python中的正则表达式匹配[...]块内的' - ',但是,我不确定如何实现这一点,因为' - '表示该块中的范围。

编辑:我失败的正则表达式:

regex = re.compile("^[0-9+-*/]+$")

2 个答案:

答案 0 :(得分:9)

来自the docs

  

如果您想在集合中包含']''-',请在其前面加上反斜杠,或将其作为第一个字符。

答案 1 :(得分:6)

只需将其放在[](字符类)的开头:

regex = re.compile("^[-0-9+*/]+$")

为什么会有效?

当你将连字符放在字符类的开头时,大多数正则表达式引擎都足够聪明,意识到你的意思是一个字面连字符(因为你不能指明没有开头的范围)。