2013-11-28 6 views
0
$string = 'SSM1234'; 
preg_match("SS{2,}\M+\[0-9]", $string); 

왜이 정규식이 내 샘플 $string과 일치하지 않습니까?이 영숫자 문자열의 정규식

내가 지정된 ID는 이메일 주소 또는 ssmid 여부를 확인해야

.....도이 정규 표현식이해야

if((!preg_match("/^S{2,}M+[0-9]+$/", $Forgot_field)) || (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $Forgot_field))){ 

       $result = "Enter a valid SSM ID or Email ID"; 
} 
+0

'S {2,} M + [0-9] +' – soumer

+0

일치시키고 자하는 다른 샘플 문자열을 포함하면 도움이 될 것입니다. 일치하는 모든 문자열이 "SSM"으로 시작합니까? 아니면 S 또는 M (또는 임의의 문자)을 가질 수 있습니까? –

답변

1

을 당신은 구분 기호를 놓친

$string = 'SSM1234'; 
$res = preg_match('/^S{2,}M+[0-9]+$/', $string); 

작품 확인 / 및 귀하의 정규 표현식은 적어도 3 S과 일치해야합니다. 2.

시작 부분 (^)과 en d ($)가 일치합니다. 그러나 문자열 SSS 정도 최소 3 SSSS[...]SS{2,} 일치 다음과 같은 부분 (이 사건에 의해 따라 다름)

1

의무적 없습니다.

는 당신이 필요로하는 것은 : 누락 된 구분 기호 물론

/^S{2,}M[0-9]+$/ 

, 개황 언급 한 바와 같이. 그래서

SSM1 
SSSM1 
SSSSSSM157453247 
SSSM123 

과 :

이 정규식과 같은 문자열을 일치합니다.

당신이 엄격 샘플 문자열 시도 일치하는 정규식이 필요한 경우 :

/^S{2}M\d{4}$/ 

이 정규식 정확히 {2} 시간 일치를 S하는 M 다음 {4} 번 자리 (\d).

관련 문제