2012-01-13 3 views
0

난 단지 특정 형식을 허용정규식 유효성 검사를 괄호 [] 문자열

샘플있는 텍스트 필드 중 하나의 유효성을 검사하는 정규 표현식을 사용하는 것을 시도하고있다 : 여기에 [애플] [오렌지] [두리안] ABC

을 형식의 일부 규칙은

  1. 괄호로 묶은 항목 사이와 문자열 시작 부분에 허용되는 문자가 없습니다.

  2. 적어도 하나의 괄호 항목뿐만 아니라 이러한 문자열 단어를 괄호 항목에서 허용되는

  3. 더 후 5 : 애플, 오렌지, 두리안, 배.

  4. 전체 문자열이 100자를 넘지 않습니다.

나는이 나왔다 : "(<?bracket>\[(Apple|Orange|Durian)\]){1,5}"하지만 내 페이지로드하려고이 오류를 가지고 :.

분석 ""(? 브래킷을 "- 충분하지 않음)의를 누구나 지원할 수 정규식에 따라 정규식 형식, 감사합니다.

답변

1

문자열은 무엇입니까? <?bracket> 거기에 뭐하는거야? 그 어떤 정규식 구문 중 일부라고 생각하지 않습니다 및 asp.net 특정 것으로 찾을 수 없습니다.

레가

1) 정규 표현식의 시작 부분에 캐럿 (^ 문자)을 넣으십시오. 이것은 필드의 시작 부분이되어야한다는 것을 의미합니다.

2) 나는 당신이이 권리가 있다고 생각합니다. 전체 식을 괄호로 묶고, 뒤에 {1,5}

3) 이것이 옳다고 생각합니다. 단어를 대문자로 입력해야합니까? 그렇지 않은 경우 소문자를 지정하거나 (예 : [Dd]urian) 대문자와 무관 한 수정자를 전체 표현식에 추가하십시오.

4) 동일한 정규식을 사용하여이 작업을 수행 할 수 있다고 생각하지 않습니다. 문자열이 ^.{1,100}$과 일치하는지 확인하려면 별도의 유효성 검사 단계를 수행해야합니다.

+0

작품을 삭제하면 작동하지 않는 유일한 제한은 마지막 괄호 표시된 문자열 다음에 더 이상 문자를 추가 할 수 없다는 것입니다. – k80sg

+0

그런 경우 부분 일치가 아닌 정규식과 필드 내용이 완전히 일치하는지 테스트하는 것처럼 들립니다. 당신은 그 행동을 바꿀 수 있어야하지만, 어떻게해야할지 모르겠습니다. 이 문제를 해결하기 위해 정규 표현식의 끝에'. +'를 추가하면 추가 문자가 유효 함을 나타낼 수 있습니다. 기준 4에 대해 언급 한 두 번째 유효성 검사 단계는 전체 문자열이 길이 제한 내에 있는지 확인해야합니다. – octern

관련 문제