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

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


但是这些都是无效的

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


有人可以为此显示正确的正则表达式吗?

最佳答案

这应该匹配。

^[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

09-25 17:24