用于验证数字和字符的正则表达式

时间:2012-10-23 09:47:48

标签: c# regex

我需要验证一个包含数字的字符串(数字不能为0或在开头有零)或一个数字后跟a-z或A-Z范围内的单个字符。所以,这些都是有效的

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

但这些都是无效的

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

有人能告诉我正确的正则表达式吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

^[1-9]\d*[a-zA-Z]?$应该这样做。

  • [1-9] - 一位数1-9
  • \d* - 可能是几位0-9
  • [a-zA-Z]? - 可选的小写/大写字符(可能不包括重音等)
  • ^...$ - 只匹配整个字符串,而不是子字符串。