2016-08-09 4 views
1

나는 반복 패턴 일치하도록이 정규식이 : 9:9; (1 개 숫자 세트) 또는 12:2;4:9; : 그것은 같은 문자열을 일치합니다만들기 필요한 문자

/([0-9]{1,2}:[0-9]{1,2};)+/ 

을 (2 세트의 숫자) 또는 5:2;7:7;5:2; (3 세트의 숫자) 등이 있습니다.

지금까지는 좋았지 만 세미콜론을 사용하여 각 세트를 구분해야하며, 줄 끝에있는 경우 선택 사항이 필요합니다. 그래서 나는 이것 모두를 받아들이는 것이 필요하다 : 5:2;7:7;5:2; 그리고 이것 : 5:2;7:7;5:2. 이 값은 9:9;이고이 값은 9:9입니다.

어떻게 달성 될 수 있습니까? 당신이 (?:;|$)을 사용할 수 있습니다 당신은 (;|$) 사용할 수 있습니다

+0

나는 당신이 Regex를 요청했다는 것을 알고 있지만 이것을 PHP로 태그를 붙였다. 왜 단지'$ numbers = explode (';', $ setOfNumbers); ' – haz

답변

1

그렇게 끝 ;; 캡처 방지하기 위해

/([0-9]{1,2}:[0-9]{1,2}(;|$))+/ 

선택 사항입니다.
?: 당신은 갈 수있는 non-capturing group

+0

그것은 완벽합니다. 고맙습니다! 3 분 안에 수락 할 것입니다. –

1

입니다 :

^(\d{1,2}:\d{1,2};?)+$ 

a demo on regex101.com를 참조하십시오. 거기, ^$는 라인 앵커있는 경우
\d 경기 0-9;? 세미콜론 일치합니다.

관련 문제