2016-08-02 3 views
0

Java regexp로 작업 중이므로 하나를 만드는 데 약간의 문제가 있습니다. 0.0과 359.9 사이의 숫자와 항상 일치하는 정규 표현식을 얻어야합니다.이 표현식은 매우 복잡하지는 않지만 정확히 하나의 십진수를 사용해야합니다. 그러나 정규식에서 문자가 일치하지 않으면 텍스트 필드에 대해 정규 표현식을 사용하고 있습니다. 더 이상 입력하지 마십시오.텍스트 필드 일치를위한 Java regexp

기본적으로 3 35 359 359입니다. 359.9는 모두 입력란에 입력해야합니다.

나는 \d(\.\d)?으로 물건을 시험해 왔지만 모든 단계와 일치하지 않으며 \d(\.)?(\d)?은 0으로 시작할 수 있습니다. regexp에 대해 알고있는 내용으로는 더 이상 이해할 수 없으며 어떤 도움을 주시면 감사하겠습니다.

답변

0

이 시도 필요에 따라이 Simpe regex.It이 작동 해보십시오 :

^(?:3[0-5]\d|[12]\d{2}|\d{1,2})(?:\.\d?)?$ 

데모 : 이것은 0으로 시작하는 표현을 허용하지만, 그것의 https://regex101.com/r/mW0lI5/3

+0

고마워! –

+0

나는 그것을 의도적으로 받아 들여야한다고 생각했다. 그러나 이것은 [0-2] 범위를'[12]'로 변경함으로써 쉽게 고칠 수 있습니다. 대답을 수정했습니다. –

+0

'\ d {1,2}'는 여전히 01.0과 일치합니다. 그리고 그것을 [1-9] \ d로 바꾸는 것은 작동하지 않습니다. –

0

당신이

^\d[0-5]?[0-9]?(\.)?([0-9])?$