日期:2014-05-20  浏览次数:20809 次

求大于0小于100的正整数(有且只能有2位)的正则表达式~~~~
如题
------最佳解决方案--------------------
引用:
看了下你的数据,那么主要难度会在: 06 正确

这种情况下需要把实际上是个位数的单独处理,大致如下:
  str.matches("0?[1-9]
------其他解决方案--------------------
看了下你的数据,那么主要难度会在: 06 正确

这种情况下需要把实际上是个位数的单独处理,大致如下:
  str.matches("0?[1-9]
------其他解决方案--------------------
Java么?
  str.matches("[1-9][0-9]?");
------其他解决方案--------------------
引用:
Java么?
  str.matches("[1-9][0-9]?");


但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理
------其他解决方案--------------------
1、测试过上面的正则么

2、“有且只能有2位”是啥意思

引用:
引用:

Java么?
str.matches("[1-9][0-9]?");


但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理

------其他解决方案--------------------
^[1-9][0-9]$
------其他解决方案--------------------
你的题目和你的需求有问题,你实际要的是验证是否是2位数。
------其他解决方案--------------------
引用:
但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理


“第一位可以没有”,换个思路就是“第二位可以没有”。所以只输入“8”,也是符合的。

话说才注意到你题目要求是“有且只能有2位”,这个听起来应该是 >=10 且 < 100 ??

那么,如果是 1~99 用这个:
  str.matches("[1-9][0-9]?");
如果是 10 ~ 99 用这个:
  str.matches("[1-9][0-9]");
区别仅仅是个“?”
------其他解决方案--------------------
引用:
引用:
但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理


“第一位可以没有”,换个思路就是“第二位可以没有”。所以只输入“8”,也是符合的。

话说才注意到你题目要求是“有且只能有2位”,这个听起来应该是 >=10 且 < 100 ??

那么,如果是 1~99 用这个:
  str.matches("[1-9][0-9]?");
如果是 ……


就是说:
0  错误
00 错误
06 正确
6  正确
10 正确
99 正确
100错误
------其他解决方案--------------------
引用:
1、测试过上面的正则么

2、“有且只能有2位”是啥意思

引用:

引用:

Java么?
str.matches("[1-9][0-9]?");


但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理

0  错误
00 错误
06 正确
6  正确
10 正确
99 正确
100错误
------其他解决方案--------------------
引用:
^[1-9][0-9]$


这样写我之前也想过,但是 06 就不能通过了。。。

规则见楼上
------其他解决方案--------------------
[1-9][0-9]");

不知道你允许: 
  000006 正确  
  000016 正确
不?
------其他解决方案--------------------
[1-9][0-9]");

不知道你允许: 
  000006 正确  
  000016 正确
不?


是的,就是 06 处理起来挺麻烦的,你上面说的可以不用考虑,是限制输入位数的 只能是1位或者 2位 ,如果输入 006 就报错