Python 如何匹配'-';在正则表达式中,字面上是在[…]内部
我试图使用python中的正则表达式匹配[..]块中的“-”,但我不确定如何实现,因为“-”表示该块中的范围 编辑:我失败的正则表达式:Python 如何匹配'-';在正则表达式中,字面上是在[…]内部,python,regex,Python,Regex,我试图使用python中的正则表达式匹配[..]块中的“-”,但我不确定如何实现,因为“-”表示该块中的范围 编辑:我失败的正则表达式: regex = re.compile("^[0-9+-*/]+$") 只需将其放在[](字符类)的开头即可: 它为什么起作用? 当您将连字符放在字符类的开头时,大多数正则表达式引擎都足够智能,可以意识到您指的是文字连字符(因为您不能指示没有开头的范围)。From: 如果要在集合中包含']'或'-',请在其前面加反斜杠,或将其作为第一个字符 您的文本要求将连字
regex = re.compile("^[0-9+-*/]+$")
只需将其放在
[]
(字符类)的开头即可:
它为什么起作用?
当您将连字符放在字符类的开头时,大多数正则表达式引擎都足够智能,可以意识到您指的是文字连字符(因为您不能指示没有开头的范围)。From:
如果要在集合中包含']'
或'-'
,请在其前面加反斜杠,或将其作为第一个字符
您的文本要求将连字符放在集合的开头,但您的示例将其放在末尾。这两种风格看起来都很管用,但由于文档中只提到了开头,所以我不会把它放在结尾。很好。我最初写我的答案是同时提到开始和结束,但我在仔细检查文档后编辑了它。我忘了编辑示例以反映这一点。谢谢
regex = re.compile("^[-0-9+*/]+$")