> 백엔드 개발 > C++ > 정규 표현식으로 문자 길이를 제한하는 방법은 무엇입니까?

정규 표현식으로 문자 길이를 제한하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-26 20:14:15
원래의
928명이 탐색했습니다.

How to Limit the Length of Characters in a Regular Expression?

정규식 문자 길이 제한 개선 방법

원래 정규 표현식에서는 문자 길이에 제한을 두지 않았습니다.

<code>var test =  /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*$/</code>
로그인 후 복사

문자 길이를 15자로 제한하려면 다음과 같이 표현식을 수정해 보세요.

<code>var test =  /^(a-z|A-Z|0-9)*[^$%^&*;:,<>?()\""\']*${1,15}/</code>
로그인 후 복사

수량자를 앵커에 직접 적용할 수 없기 때문에 오류가 발생합니다. 입력 문자열의 길이를 제한하는 올바른 방법은 시작 부분에 예측 어설션을 사용하는 것입니다.

<code>^(?=.{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()\"']*$</code>
로그인 후 복사

이 미리보기 어설션은 입력 문자열이 지정된 문자 범위와 일치하고 길이가 1~15자인지 확인하여 문자 길이 제한을 효과적으로 적용합니다.

끝에 제한적인 수량자를 사용하는 것과 비교하여(예: {1,15}) 미리보기 접근 방식을 사용하면 전체 입력 문자열의 길이를 제한할 수 있습니다. 수량자는 예견 어설션의 하위 패턴에 적용되어 문자열 시작 부분부터 필요한 문자 수와 일치하는지 확인합니다.

다음은 몇 가지 참고 사항입니다.

  • [a-zA-Z0-9]* 하위 패턴은 길이에 관계없이 일련의 문자 또는 숫자와 일치합니다. 이는 원래 표현식에 사용된 (a-z|A-Z|0-9)* 하위 패턴과 동일합니다.
  • 긍정적 예측 어설션 (?=.{1,15}$) 지정된 수의 문자가 문자열 끝에 있어야 함을 어설션하려면 $ 앵커를 사용합니다.
  • 이 방법은 ECMAScript 및 Python과 같은 기타 정규식 버전에서 작동합니다. 그러나 Python에서는 AZ 대신 ^$ 앵커를 사용해야 합니다.

또한 입력 문자열에 개행 문자가 포함될 수 있는 경우 [sS] 이식 가능한 임의 문자 정규식 구문을 사용할 수 있습니다.

<code>^(?=[\s\S]{1,15}$)[a-zA-Z0-9]*[^$%^&*;:,<>?()\"']*$</code>
로그인 후 복사

이렇게 하면 줄 바꿈도 문자 길이 제한에 포함됩니다.

위 내용은 정규 표현식으로 문자 길이를 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿