2012-06-25 2 views
3

그래서 전날 PHP에서 preg_match에 대해 배웠고 지금은 번호판을 preg_match하려고합니다. 다음을 확인해야합니다 :PHP preg_match 자동차 번호판

9a-4e-yy, 그래서 -, 그 전후의 숫자 또는 문자, 그리고 - 다시 숫자 또는 문자. 그러나 정확히 2 개의 숫자 또는 문자가 서로 가깝고 서로가 있어야합니다.

return preg_match("/^([0-9])"."([0-9])"."(\-([0-9])"."([0-9]))"."(\-([0-9])"."([0-9]))$/", $kenteken); 

그러나 숫자에 만 검사 : 들어

는 지금이 코드가 있습니다.

여러분이 글자로 작업하는 것을 도울 수 있기를 바랍니다.

미리 감사드립니다.

+0

번호판은 소문자가 될 수 있으므로 어떤 카운티를 코딩하고 있습니까? – mickmackusa

+0

@mickmackusa이 질문은 5 세입니다. IRL 번호판은 대문자가 아니지만 사용자가 대문자에 대해 걱정할 필요가 없으므로 나중에 대문자로 지정할 수 있으므로 사용자 친화적 인 방법입니다. 네덜란드어 번호판 btw입니다. –

답변

6

[0-9]은 숫자와 일치합니다. 숫자 나 문자를 일치 시키려면 [0-9A-Za-z]이 필요합니다. 당신이 원하는 것을 할 수

전체 정규식 당신은 아마 원하는 ^[0-9A-Za-z]{2}(-[0-9A-Za-z]{2}){2}$

3

입니다 : "

preg_match('/^[0-9a-z]{2}-[0-9a-z]{2}-[0-9a-z]{2}$/i', $kenteken); 

[0-9a-z]은"9 "를 통해 임의의 숫자"0 "을 의미하거나 (소문자) 문자 A "부터"z "까지. {2}은 정확히 2자를 의미합니다. 끝에있는 /i은 대소 문자를 구분하지 않기 때문에 대문자와도 일치합니다.

+0

이 답변은 캡쳐 그룹을 사용하지 않기 때문에 cdhowie가 단계적으로보다 효율적입니다. 대소 문자를 구별하지 않는 패턴 수정 자도 논리적으로 개선되었습니다. 패턴 길이를 줄이려면'\ d'가'0-9' 대신 사용될 수 있습니다. 다른 말로하지 않는 한, 나는 세계의 모든 번호판이 소문자를 사용한다고 생각하지 않는다. 그래서'/^[\ dA-Z] {2} - [\ dA-Z] {2} - [\ dA-Z] { 2} $ /'잘 할 것입니다. – mickmackusa