2016-10-11 1 views
-1

파이썬에서이 정규식 ([0.00-9.00]+)이 무엇을하는지 이해하려고합니다. 내가 이해하는 방식은 0 . 0 0-9 . 0 0 중 하나와 일치하므로 여기서 0은 중복됩니다. 내부에 .이 있기 때문에 모든 문자와 일치해야하며 전체 일치는 반드시 숫자가 아닌 비어 있지 않은 문자 시퀀스 여야합니다. 그러나 그런 식으로 행동하지는 않습니다. 내가 놓친 게 있니?정규 표현식에서 대괄호 "[]"내의 float 범위는 무엇을 의미합니까?

Few examples of how it behaves

+1

아니요. 문자 범위의 '.'은 '모든'문자와 일치하지 않으며 리터럴 점만 일치합니다. –

+1

https://regex101.com/r/BSZI6b/1 – deceze

+1

또한 http://stackoverflow.com/questions/19976018/does-a-dot-have-to-be-escaped-in-a-character- class-square-bracket-of-a-regula 및 http://stackoverflow.com/questions/21929693/decyphering-a-simple-regex/21929764#21929764 –

답변

6

제로는 참으로 중복입니다. .. 문자 유형과 일치합니다. 문자 클래스, [...] 구문의 일부이기 때문입니다. 거기에는 특별한 의미가 없습니다.

그래서 문자 클래스는 감소 될 수있다 :

[0-9.]+ 

여전히 동일한 입력을 일치합니다.

정규식 텍스트의 작성자가 숫자 범위 기능이있는 문자 클래스의 - 기능을 혼동하는 것 같습니다. 정규식에는 그러한 것이 없습니다. 실제 숫자로 읽을 수있는 개별 문자를 일치시켜야합니다. 여기서 부정적인 모습 숨김

(?<!\d)\d\.\d\d(?!\d) 

를 봐 미리이 텍스트를 둘러싼 자리가없는 있는지 확인 : 다음은 실제로 같은 번호를 일치합니다. \d[0-9]의 약자입니다.

this regex101 demo을 참조하십시오.

+0

그 이유를 설명합니다. 답변 해주셔서 감사합니다! –

관련 문제