2013-08-13 5 views
0

이 표현식의 문자 수를 어떻게 든 제한 할 수 있습니까?표현식의 문자 수 제어?

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

내가 한계를 다음 문자열을 수락 할 :

내가 좋아하는 식의 문자 수를 제한합니다. 예를 들어, 한계는 4 인 경우

  • 12.3

  • 012하지 않습니다하지
  • 12345 않습니다
  • 를 인정됩니다.
+2

왜 012가 아니겠습니까? 그것은 4의 한도 내입니다. 아니면 제한이 아니라 지정된 길이입니까? – Bohemian

답변

1

를 사용하여 고정 된 전방 보면 (예를 들어, 최대 33) :

^(?=.{0,33}$)([0-9]+(\.?[0-9]+)*) 

정확히 33 년 기간을 무시하려면 0,


을 제거 만들려면 한도는

^(?=(\.*[^.]){0,33}\.*$)([0-9]+(\.?[0-9]+)*) 
+0

고마워, 또 다른 빠른, 내가 어떻게 든 그것이 마침표의 숫자를 무시하게 만들 수 있습니까? – user2609388

+0

일치하기 전에 먼저 마침표를 제거하십시오. (간단한 문자열 바꾸기) ... – poncha

+0

@poncha 한계에서 마침표를 무시하는 방법에 대한 보너스 답을 참조하십시오. – Bohemian

1

정규식는 수량 :

  • {n} - 정확히 n 출연
  • {n,m} - 최소 n 발행 수, 최대 m 발행 수
  • {,m} - 최소 제로, m
  • {n,} 최대 - 최소 n, 최대 무한대.
  • * - 임의의 금액. 동등 물 {0,}
  • + - 하나 이상. {1,}
  • ? - 0 또는 1입니다. Exuivalent to {0,1}

다음은이 요약입니다.

+0

이 한정어에 대한 일반적인 참조로이 답변을 보관하고 있지만이 질문에 대한 실질적인 대답은 [@ 보헤미안에서 제공하는 답변]입니다 (http://stackoverflow.com/a/18203766/620813). – poncha