당신은 첫 번째 정규식에 두 번째 패턴을 사용하는 것과 동일한 방식으로 앵커를 추가해야합니다, 당신은 (0 20, 말) 두 번째 패턴으로 하한 제한 수량 어에 대한 정의해야합니다
을
$studentID = "1234567";
if (preg_match('/^[0-9]{7,10}$/', $studentID)) {
echo "$studentID matched!\n";
}
$familyname = "Pupkin";
if (preg_match ('/^[A-Z -]{0,20}$/i', $familyname)) {
echo "$familyname matched!";
}
는 패턴이 다른 소모 서브 패턴 (그래서, 필요 정량화 된 서브 패턴에 대한 역 추적 불가능하게하는)에 이어되지 않기 때문에
{0,20}
과 그 소유
{0,20}+
버전은 여기에서 동일하게 작동 할 것이라는
PHP demo
참고를 참조하십시오.
또한 '/^[A-Z -]{0,20}$/i'
은 성을 나타내는 매우 일반적인 하위 패턴이므로 더 정확하게 지정할 수도 있습니다. 예를 들어 모든 공백 또는 ---------
과 같이 문자열을 허용하지 않으려면 '/^(?=.{0,20}$)[A-Z]+(?:[ -][A-Z]+)*$/i'
을 사용할 수 있습니다.
'/ i'가있는' –
'a-zA-Z'는 중복해서 쓰지 않습니다. '/ i'는 이미 대문자와 소문자를 구별하지 않으므로 대문자와 소문자 버전을 제공하는 것이 무의미합니다. '{, 20} +'도별로 의미가 없습니다. –