2011-11-18 6 views
0

정규식을 사용하여 유효성을 검사해야하는 텍스트 필드가 있습니다.25 자와 일치하고 숫자로 시작하는 정규 표현식

CCCCNNNNNN 또는 CCCCNNNNNNN (템플릿)

1234ABCDEFG 또는 123-ABCDEFG (예 문자열)

규칙 :

  • 전체 문자열이 최대 25 자입니다 내 요구 사항은 다음과 같다
  • 첫 번째 fo UR 문자 (CCCC)는 숫자
  • CCCC는 정확히 4 자이어야하며, 숫자 또는 숫자가 될 수 있습니다
  • 4 문자로 대시 기호를 가질 수
  • CCCC
  • NNNNNNNNNNNN은 최대 21 개 문자와 숫자 만
될 수 있습니다

예 : AAAA1234A58-은 CCCC에 유효한 문자열입니다. 여기

내 연구 노트입니다 : 내가 먼저 수치와 일치해야합니다
  • 난 후 문자와 일치해야합니다
  • 나는이 패턴을 X 시간을 일치하도록 지정 + 문자가 필요합니다

    ,536,913 : 8-9 공간

여기 정규식 패턴에 멋진 포스트가 있음

Matching numbers with regular expressions — only digits and commas

내 목표는이 REGEX 패턴을 WinForms 앱의 텍스트 상자 마스크에 적용하는 것입니다.

+0

나는 내 대답을 삭제했습니다. 되돌아 가서 합리적인 질문을하십시오. – ObscureRobot

+0

죄송합니다. 제 요구 사항을 분명히했습니다. 이것이 내가 필요한 것을 더 명확하게 이해하기를 바랍니다. – nocarrier

+0

충분하지 않음 : 나에게 "처음 네 문자 (CCCC)는 영숫자 여야 함"은 ABCD 또는 1234를 의미하며 "NNNNNNNNNNNNN은 21 자까지 가능하며 숫자 만"은 예 1234ABCDEFG와 충돌합니다. . 그렇다면 '그 다음에 8-9 개의 공백 문자를 매치 할 필요가 있을까요?'라는 뜻입니까? –

답변

3

....

....

...

^[0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}$ 

그게 전부 :

^    # assert beginning (not in the middle) 
[0-9A-Za-z]{3} # three characters that are: 0-9 or a-z (upper or lower) 
[0-9A-Za-z-] # one character that is: 0-9 or a-z (upper or lower) or a dash 
\d{0,21}  # anywhere from 0 to 21 digits 
$    # assert at the end (not somewhere in the middle 

당신은 여러 사례를 일치 시키려면 - 그래 내가 대답은 당신이 찾고있는 생각 (내가 " 생각"강조)이 표현 이 표현식에서 위의 표현식 (빼기)을 괄호 (())와이 값을 분리 할 수있는 것과 함께 넣으십시오. \s 또는 "공백"을 선택한 다음 + 한정 기호를 사용하십시오 :

^([0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}\s+)+$ 

유효성을 검사/다음과 같은 입력과 일치합니다 : 당신이 다른 것을 원한다면 당신이 명확하게 질문을해야합니다,

1234567890 AAAA123456789GGG-123  hhh5 A1B2000000000 

을 (수 귀하의 질문에 모순과 많은 반복이있다 그것은 매우 혼란 스럽습니다.)

+0

감사합니다. 질문을 명확하게하기 위해 다시 수정하겠습니다. – nocarrier

+0

마지막으로 확인한 표준 MaskedTextBox는 정규 표현식을 사용하지 않습니다 –

+0

모순에도 불구하고 답변 해 주셔서 감사합니다. Code Jockey; 나는 표현 규칙 유효성 검사 규칙에 대한 직접적인 요구 사항을 제공하기 위해 나의 질문을 정리했다. – nocarrier