2011-08-21 2 views
3

에 내가 일치하도록 노력하고는 '-'내부 [..] 나는 것을 확인하는 방법을 잘 모르겠습니다, 파이썬에서 정규 표현식을 사용하지만, 블록 '-'는 해당 블록의 범위를 나타 내기 때문에 발생합니다.방법에 맞게 '-'문자 그대로 내부 [..] 정규 표현식

편집 : 내 실패 정규식 :

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

답변

9

: 당신은, 세트 내부 ']' 또는 '-'을 포함 앞에 역 슬래시를, 또는 첫 번째 문자로 배치 할 경우

.

6

그냥 [] (문자 클래스)의 시작 부분에 배치 :

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

가 왜 작동합니까?

하이픈을 문자 클래스의 시작 부분에 배치 할 때 대부분의 정규식 엔진은 문자없이 하이픈을 의미 할만큼 충분히 지능적입니다 (처음부터 범위를 나타낼 수 없기 때문에). the docs에서

+1

당신의 텍스트는 세트의 시작에 하이픈을 넣어라고하지만 예는 마지막에 넣습니다. 두 스타일이 작동하는 것처럼하지만, 문서는 시작을 언급 이후로는 마지막에 넣어 피할 것이다. –

+0

잘자요. 원래는 시작과 끝을 모두 언급하는 내 대답을 썼다, 그러나 나는 문서를 두 번 확인하면 나는 그것을 편집. 이를 반영하기 위해 예제를 편집하는 것을 잊었습니다. 감사! –

+0

@ Jared Ng 감사합니다 :) – yasar