고유 트랜잭션 식별자 (UTI)의 유효성을 검사하기 위해 정규식 패턴을 작성하려고합니다. 설명보기 : hereRegex가 고유 트랜잭션 식별자를 확인합니다
UTI는 두 개의 연결된 부분 인 접두어와 트랜잭션 식별자로 구성됩니다. 다음은 고려해야 할 규칙 요약입니다.
- 접두어는 정확히 10 자의 영숫자입니다.
- 트랜잭션 식별자는 1-32 자입니다.
- 트랜잭션 식별자는 영숫자이지만 다음과 같은 특수 문자도 허용됩니다.
. : _ -
- 특수 문자는 트랜잭션 식별자의 시작 또는 끝에 나타낼 수 없습니다.
- 두 개의 특수 문자를 연속으로 사용할 수 없습니다.
지금까지 (무시 케이스와 일치)이 지점의 첫 번째 4의 UTI의 유효성을 검사하는 패턴을 구축했다 : 나는 마지막 점과 사투를 벌인거야 그러나
^[A-Z0-9]{11}((\w|[:\.-]){0,30}[A-Z0-9])?$
(NO이 행의 특수 문자). 나는 정규 표현식에 관해서는 약간의 초보자가되는 것을 쉽게 인정한다. 그리고 내가 이것을 익히기 위해 익숙하지 않은 좀 더 진보 된 기술이 있을지도 모른다고 생각하고 있었다. 어떤 정규 표현가가 저를 계몽하는 데 관심이 있습니까?
는 해결 : 감사 사용자에게 보헤미안을 제가 찾던 패턴을 찾을 수 있도록하십시오. 최종 해결책은 다음과 같습니다.
^[a-zA-Z0-9]{11}((?!.*[.:_-]{2})[a-zA-Z0-9.:_-]{0,30}[a-zA-Z0-9])?$
개선을위한 제안 사항이있는 경우 후속 답변을 위해 질문을 남깁니다.
귀하의 정규식과 동일하기 때문에 글자가 대문자 여야합니다 제안합니다. 그게 사실이야? 소문자는 "영숫자"입니다. – Bohemian
@ 보헤미안 : 예, 실제로 무시 된 대소 문자를 사용하여 일치하는 엔진을 실행하고 있습니다. 이에 대해 작은 말을했습니다. –