2011-02-05 7 views
1

"0000"에서 "2459"형식으로 시간 코드를 일치 시키려고합니다. 특정 범위의 숫자를 어떻게 일치시킬 수 있습니까? 0에서 24 사이의 모든 숫자와 0에서 59 사이의 모든 숫자를 구체적으로 일치시킬 수 있도록하려면 어떻게해야합니까? 그 누락, 14, 및 20 ~ 24 -다중 숫자 숫자 범위를 Ruby 정규식과 비교하는 방법은 무엇입니까?

나는 각각의 숫자와 일치하는 방법을 알고 있지만, 예를 들어

/[0-2][0-4]/ 

숫자 0-4, 10을 캡처 때문에 내가하고 싶은 일을하지 않습니다 사이. 따라서 여러 자릿수에 대해 포괄적 인 내용을 모두 캡처하고자합니다.

답변

10

다음은 트릭을해야 다음

/(?:[01][0-9]|2[0-4])[0-5][0-9]/ 

설명 :

  • ?: 괄호 비 캡처한다.
  • 괄호 안의 값은 00-19 또는 20-24 중 하나와 간단히 일치합니다.
  • 그 후 우리는 00-59와 일치합니다.
+0

+1 좋은 답변입니다. –

0

code MOD 10 > 59 일 때 세바스찬의 대답이 실패합니다. 예를 들어, 그것은 시작하는 4 자리 숫자를 취 1080

사용 대신 /(?:[01][0-9][0-9]|2(?:[0-3][0-9]|4[0-5]))[0-9]/, 을 인식하지 않을 0 또는 1

  • , 또는 23
  • , 또는
  • with 245
관련 문제