Python正则表达式:包括字符范围内的空格

Python正则表达式:包括字符范围内的空格,python,regex,python-2.7,Python,Regex,Python 2.7,我有一个正则表达式,它匹配字母、数字和-(具有最小和最大长度) 我想在这组字符中包含空格 根据Python文档: 字符类(如\w或\S)也可在集合内接受 所以我试着: ^[a-zA-Z0-9_-\s]{3,100}$ 但它给出了糟糕的字符范围错误。如何在上述集合中包含空格?问题不是\s而是-指示字符范围,除非它位于类的末尾或开头。使用以下命令: ^[a-zA-Z0-9_\s-]{3,100}$ ^[-a-zA-Z0-9{3100} \u-\s被解释为一个范围。表示自身的破折号必须是[…]中的

我有一个正则表达式,它匹配字母、数字和-(具有最小和最大长度)

我想在这组字符中包含空格

根据Python文档:

字符类(如\w或\S)也可在集合内接受

所以我试着:

^[a-zA-Z0-9_-\s]{3,100}$

但它给出了糟糕的字符范围错误。如何在上述集合中包含空格?

问题不是
\s
而是
-
指示字符范围,除非它位于类的末尾或开头。使用以下命令:

^[a-zA-Z0-9_\s-]{3,100}$

^[-a-zA-Z0-9{3100}


\u-\s
被解释为一个范围。表示自身的破折号必须是[…]中的第一个或最后一个字符。

如果您在正确的轨道上,请添加第二个反斜杠以转义斜杠,因为反斜杠是转义字符

^[a-zA-Z0-9_\\-\\s]{3,100}$

谢谢,布特纳先生。-的位置是dda的问题所在。赖国宝说,问题确实在于对否决票表示歉意的立场。我认为这个答案不准确,因为它不能解决问题;尽管正在解决报告的错误。在我看来,删除你的答案可能更好。
^[a-zA-Z0-9_\\-\\s]{3,100}$