我需要匹配第一个字符是a的数字
- (减号)或不是0(除非它是字符串中唯一的字符)而且我有点卡住了。 ^[-|1-9]?[0-9]+
我目前已经得到了这个,但它会匹配任意数量的零。
示例:
应匹配:
-16
25
2005
不应该匹配:
-05
05
00001
0-017
答案 0 :(得分:3)
尝试这样的模式:
^-?[1-9][0-9]*$
这将匹配字符串开头的可选-
,后跟1到9之间的单个数字,然后是0到9之间的零个或多个数字。开始(^
)和结束($
)锚点确保在数字之前或之后不允许其他字符。
更新 pointed out以上模式将匹配任何正或负十进制整数而不带前导零,但它本身不匹配零。要处理这种情况,请在模式中添加一个替换:
^-?[1-9][0-9]*$|^0$
或者像这样:
^(-?[1-9][0-9]*|0)$