Python正则表达式:在字符范围内包含空格

时间:2012-10-30 15:33:06

标签: python regex python-2.7

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

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

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

根据Python文档:

  

在集合中也接受诸如\ w或\ S之类的字符类。

所以我试过了:

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

但它会导致字符范围错误。如何在上面的集合中包含空格?

3 个答案:

答案 0 :(得分:20)

问题不是\s,而是-表示字符范围,除非它位于课程的结尾或开头。使用此:

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

答案 1 :(得分:2)

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

_-\s被解释为范围。表示自身的破折号必须是[...]

中的第一个或最后一个字符

答案 2 :(得分:0)

你在正确的轨道上,添加第二个反斜杠以逃避斜杠,因为反斜杠是一个转义字符。

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