2014-09-16 4 views
-2

문자열이 패턴의 모든 일치와 일치하는지 확인하는 방법이 있습니까? 유효하려면 모두 일치해야합니다.정규식 : 패턴의 모든 일치

내 규칙은 : E 후 발견되면

E followed by any 4 digits followed by 49 

는 그래서 그 패턴 그렇지 않으면 무효 일치해야합니다.

내 문자열 : 첫 번째 요소가 유효하지만 패턴이 다른 곳에서 일치하기 때문에 통과

tel: +E12345498912345678, +498912345678, +E123449D1238912345678, tel: +E1234498912345678 

이 실패합니다. 다른 세 요소가 모두 유효합니다. E 패턴이 모두 존재하는 경우 어떻게 일치합니까?

이 외에도 각 요소 앞에 +가 있어야합니다. 로 구분

^(\+E\d{4}49\d*($|,\s))+$ 

전체 문자열이 +Exxxx49xxxx...의 그룹으로 구성되어 있음을 확인합니다 : 그래서 내가 먼저 +

+2

예상되는 출력은 무엇입니까? 4 자리 숫자 뒤에 49 자리가 나오는 즉시? –

+0

패턴은 문자열의 어느 위치 에나있을 수 있습니다. 앵커를 사용하면 시작에 있어야한다는 뜻은 아니겠습니까? –

+0

처음에는 1234에 49가 붙지 않기 때문에 실패합니다. –

답변

0

사용에 대한 패턴을 확인 E, 4, 숫자 49를 확인 할 수있는 것 같아요 콤마 - 공간 쌍.

1

당신은 같은 것을 할 수 있습니다

^(\+E\d{4}49.*?(,|$)\s*)+$ 

이 유효성을 검사 :

+E123449D123891234, +E123449D123891234, +E123449D123891234, +E123449D123891234 

하지만하지 :

여기
+E12345498912345678, +498912345678, +E123449D1238912345678, +E1234498912345678 

당신은 demo를 확인할 수 있습니다.

+0

두 번째 것도 유효합니다. +498912345678은 유효한 요소입니다. E 패턴이 존재할 수도 있지만 존재하지 않을 수도 있습니다. 그렇다면 유효해야합니다. –

+1

@ En-Motion 그게 당신의 본보기이며 실패해야합니다. –

+0

죄송합니다. 두 번째 것은 유효하지 않습니다. 당신이 옳았. 정규식을 다른 규칙으로 확장해야합니다. –

관련 문제