정규 표현식의 문자 길이 제한
초기 정규 표현식에서는 문자 길이를 무제한으로 허용했지만 15자로 제한하려고 시도했을 때 수량자 {1,15}가 포함된 문자에서 오류가 발생했습니다. 이는 ^ 문자열 시작 앵커와 같은 앵커에는 수량자를 적용할 수 없기 때문입니다.
Lookahead를 사용한 솔루션
문자 길이를 효과적으로 제한하려면 문자열 시작 부분에 고정된 긍정적인 미리보기를 활용할 수 있습니다.
^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*
이 미리보기는 후속 문자열은 1~15자(수량자 {1,15}로 지정)와 일치하고 일치 후 즉시 끝납니다. $ 앵커는 문자열의 끝을 나타냅니다.
수량자 제한 방지
정규식 끝에 수량자 사용(예: ^[a-zA-Z0-9]*[^$%^&*;:,<>?()"]{1,15}$, 두 번째 문자 클래스의 길이만 다음으로 잘못 제한합니다. 1~15자입니다. 전체 문자열의 길이는 제한되지 않습니다.
예측 방법 작동
미리보기(?=.{1,15}$)는 문자열 끝의 개행 문자($ 앵커로 인해)를 포함하여 후속 1~15자를 평가합니다. 이 조건이 충족되면 표현식은 true를 반환하고, 그렇지 않으면 false를 반환합니다.
개행 처리 시퀀스
입력에 개행 시퀀스가 포함될 수 있는 경우 . 와일드카드를 [sS] 이식 가능한 모든 문자 구문으로 바꿀 수 있습니다.
^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()"]*
위 내용은 Lookahead를 사용하여 정규 표현식의 문자 길이를 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!