2012-10-30 4 views
6

영문자, 숫자, _ 및 - (최소 및 최대 길이)와 일치하는 정규 표현식이 있습니다.Python 정규식 : 문자 범위 내의 공백 포함

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

해당 문자 집합에 공백을 포함하고 싶습니다. 파이썬 문서에 따르면

: 예 \ w 또는 \ S 등

문자 클래스는 한 세트의 내부에 수용된다.

그래서 나는 시도 :

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

그러나 그것은 잘못된 문자 범위 오류를 제공합니다. 위의 집합에 공백을 포함하려면 어떻게해야합니까?

답변

18

문제는 \s이 아니며 문자 범위를 나타내는 -이 클래스의 끝이나 시작 부분에 있지 않는 한 문제가되지 않습니다. 이 옵션을 사용합니다 :

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

감사합니다. m.buettner. 위치는 - 문제였습니다 –

2

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

_-\s는 범위로 해석했다. 자신을 나타내는 대시가 처음 또는 마지막 문자 여야합니다. [...]

+0

감사합니다 dda. 문제는 실제로 위치 - –

0

올바른 경로에 있습니다. 백 슬래시가 이스케이프 문자이기 때문에 두 번째 백 슬래시를 추가하여 슬래시를 이스케이프 처리합니다.

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