2012-10-23 2 views
1

숫자가 포함 된 문자열 (숫자는 0이 아니거나 처음부터 0을 가질 수 있음) 또는 숫자 뒤에 a-z 또는 A-Z 범위의 단일 문자가 오는 문자열의 유효성을 검사해야합니다. 그래서,이 모든숫자와 문자의 유효성을 검사하는 Regex

2, 12, 1, 324534A, 2Y, 934d 

유효하지만,이 모든

000R, 0, 0D, D3, 23432dddd, 234Q343. 

누군가가 나에게 이것에 대한 올바른 정규식 표현을 보여줄 수 무효?

+0

감사합니다. 형식이 깔끔한 Oded입니다. –

+0

BTW - Regex를 배우는 것이 좋습니다. 이것은 유용한 도구입니다. Mastering Regular Expressions는 주제에 대한 최고의 책입니다. – Oded

+0

EF에있는 책을 읽 자마자 Regex를 살펴 보겠습니다. –

답변

3

일치해야합니다.

^[1-9]\d*[a-zA-Z]?$ 

내역 :

^   - Match start of string 
[1-9]  - Followed by one digit (1-9), no 0 
\d*   - Followed by any number of digits (can contain digits from 
       other cultures). If you want to constain use [0-9] instead of \d 
[a-zA-Z]? - Followed by either one character or none 
$   - Followed by end of string 
+0

@ t3hn00b - 수정하십시오. 당신이 논평하면서 업데이트 중이었습니다. 문자열 내에 '0'이 허용되었는지는 명확하지 않지만 그 것처럼 보입니다. – Oded

3

^[1-9]\d*[a-zA-Z]?$가 수행해야합니다.

  • [1-9] - 아마도 몇 가지 숫자 0-9
  • [a-zA-Z]? - - 옵션 하단/대문자는
  • ^...$ (악센트 등을 커버하지 않을 수 있습니다) -만이 경기를 1-9
  • \d* 한 자리 문자열 전체가 아니라 부분 문자열.
+0

이것은 '2'에서 실패합니다. 이는 유효합니다. – Oded

+0

필자는 전체 문자열과 일치해야 할 필요가 있으며 악센트가 필요하지 않으므로 올바른 경우이 작업을 수행해야합니다. –

+0

@Oded 감사합니다. 내'*'와'+'가 섞여 있습니다. 나는 이제 괜찮다고 생각한다. – Rawling

관련 문제