반응형
참고주소 : https://stackoverflow.com/questions/8318236/regex-pattern-for-hhmmss-time-string
HH:MM:SS 시간 문자열에 대한 정규식 패턴
저는 hh:mm:ss
문자열을 파싱하고 싶습니다. 간단한 방법은 2:3:24
또는 02:03:24
문자열이 기대되는 ([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)
입니다.
저는 더 단계를 진행하고 싶고 다음과 같은 경우에 유효성을 통과하는지 알고 싶습니다.
- 56만 입력할 경우, 통과해야하며, 56은 56초 [SS]로 고려될 수 있습니다.
- 2:3 또는 02:03 또는 02:3 또는 2:03을 입력해도 통과해야 합니다. 2분 3초 [MM:SS]의 의미입니다.
- 20:30:12를 입력하면 20시 30분 12초 [HH:MM:SS]라는 의미로 통과합니다.
- 78:12를 입력하면 78분은 틀렸기 때문에 통과할 수 없습니다.
기본적으로 ":"이 발견되면, ":" 앞에 숫자는 MM으로, ":" 뒤의 숫자는 SS로 간주합니다. 두 개의 ":"이 발견되면 HH:MM:SS로 갅주합니다.
전 이 패턴을 생각해 냈습니다.
(^([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)$)|(^([0-5]?\d):([0-5]?\d)$)|(^[0-5]?\d$)
잘 작동하는 것 같습니다. 저는 이 작업을 할 수 있는 다른 더 간단한 정규식을 알고 싶습니다.
2개 답변 중 1개
^(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)$
설명:
^ # 문자열의 시작
(?: # 맞는가 시도...
(?: # 맞는가 시도...
([01]?\d|2[0-3]): # HH:
)? # (옵션으로).
([0-5]?\d): # MM: (필수)
)? # (그룹 전체가 옵션, 그래서 HH:MM: 또는 MM: 또는 없음의 의미)
([0-5]?\d) # SS (필수)
$ # 문자열의 끝
반응형
'도움받은 정보' 카테고리의 다른 글
이미 실행중인 프로세스의 출력을 redirecting 하기 (0) | 2021.04.11 |
---|---|
경고 : feof()는 첫 번째 매개 변수가 리소스가 될 것으로 예상합니다. 하지만은 /volume1/web/comment.php 62행에 boolean 타입입니다. (0) | 2021.04.09 |
Stunnel (0) | 2020.12.23 |
부모가 모든 자식 프로세스가 끝날 때까지 기다리는 방법? (0) | 2020.04.13 |
"함수는 일급 객체이다." 는 정확히 무슨 의미입니까? (0) | 2019.12.09 |