1

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

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

但这些都是无效的

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

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

4

2 回答 2

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
于 2012-10-23T09:49:48.847 回答
3

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

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