[regex] 이 정규식에 음수 십진수를 어떻게 포함합니까?

이 정규식으로 음수를 어떻게 일치시킬 수 있습니까? 이 정규식은 양수 값으로 잘 작동하지만 -10, -125.5 등과 같은 음수 값도 허용하고 싶습니다.

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

감사



답변

당신은 추가하여 시작 부분에 선택적 하이픈을 추가해야합니다 -?( ?A는 한정 기호는 의미 하나 명 영 발생을 ) :

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

다음 값으로 Rubular에서 확인했습니다.

10.00
-10.00

둘 다 예상대로 일치했습니다.


답변

몇 가지 정규식 예 :

양의 정수 :

^\d+$

음의 정수 :

^-\d+$

정수 :

^-?\d+$

양수 :

^\d*\.?\d+$

음수 :

^-\d*\.?\d+$

양수 또는 음수 :

^-?\d*\.{0,1}\d+$

전화 번호 :

^\+?[\d\s]{3,}$

코드가있는 전화 :

^\+?[\d\s]+\(?[\d\s]{10,}$

1900-2099 년 :

^(19|20)[\d]{2,2}$

날짜 (dd mm yyyy, d / m / yyyy 등) :

^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$

IP v4 :

^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$


답변

왜 그게 먼저 필요한지 모르겠어요 [0-9].

시험:

^-?\d*(\.\d+)?$

최신 정보

자리에 숫자가 있는지 확인하려면 다음을 사용하십시오.

^-?\d+(\.\d+)?$


답변

UPDATED (13/08/2014) : 이것은 양수와 음수에 가장 적합한 코드입니다 =)

(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}

이 숫자로 시도하고 잘 작동합니다.

-1234454.3435
-98.99
-12.9
-12.34
-10.001
-3
-0.001
-000
-0.00
0
0.00
00000001.1
0.01
1201.0000001
1234454.3435
7638.98701


답변

이것은 숫자가 뒤에 오는 경우에만 -또는 +문자 를 허용합니다 .

 ^([+-](?=\.?\d))?(\d+)?(\.\d+)?$


답변

이것은 양의 정수와 음의 정수를 모두 허용합니다

ValidationExpression = “^-? [0-9] \ d * (\ d +)? $”


답변

음수에서 양수로 필요한 장고 URL의 정규식에 대한 몇 가지 실험이 있습니다.

^(?P<pid>(\-\d+|\d+))$

(\-\d+|\d+)부분 에 초점을 맞추고 다른 부분을 무시 하겠습니다 .이 세미콜론 |은 정규식에서 OR 을 의미합니다 . 그러면 음수 값이이 \-\d+부분 과 일치 하고 양수 값 이이 부분 과 일치 합니다.\d+