求大于0小于100的正整数(有且只能有2位)的正则表达式~~~~

Mr_Leaco 2012-11-01 03:19:56
如题
...全文
1034 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
话说楼主你试过我 10 楼给出的么?
str.matches("0?[1-9]|[1-9][0-9]");

JS就是:
/^0?[1-9]|[1-9][0-9]$/
Mr_Leaco 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

稍微长了点,但是能用。

^[1-9][0-9]$|^0[1-9]$|^[1-9]$

话说,为啥一定要用正则呢? 这个需求用parse可能更好些吧
[/Quote]

正解!因为我用的是WPF,想Java里面高手多就发布到这里了,多谢各位,结贴给分~
nickycheng 2012-11-01
  • 打赏
  • 举报
回复
稍微长了点,但是能用。

^[1-9][0-9]$|^0[1-9]$|^[1-9]$

话说,为啥一定要用正则呢? 这个需求用parse可能更好些吧
Mr_Leaco 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

看了下你的数据,那么主要难度会在: 06 正确

这种情况下需要把实际上是个位数的单独处理,大致如下:
str.matches("0?[1-9]|[1-9][0-9]");

不知道你允许:
000006 正确
000016 正确
不?
[/Quote]

是的,就是 06 处理起来挺麻烦的,你上面说的可以不用考虑,是限制输入位数的 只能是1位或者 2位 ,如果输入 006 就报错
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
看了下你的数据,那么主要难度会在: 06 正确

这种情况下需要把实际上是个位数的单独处理,大致如下:
str.matches("0?[1-9]|[1-9][0-9]");

不知道你允许:
000006 正确
000016 正确
不?
Mr_Leaco 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

^[1-9][0-9]$
[/Quote]

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

规则见楼上
Mr_Leaco 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

1、测试过上面的正则么

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

引用 2 楼 的回复:

引用 1 楼 的回复:

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


但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理
[/Quote]
0 错误
00 错误
06 正确
6 正确
10 正确
99 正确
100错误
Mr_Leaco 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 2 楼 的回复:
但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理


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

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

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

就是说:
0 错误
00 错误
06 正确
6 正确
10 正确
99 正确
100错误
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理
[/Quote]

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

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

那么,如果是 1~99 用这个:
str.matches("[1-9][0-9]?");
如果是 10 ~ 99 用这个:
str.matches("[1-9][0-9]");
区别仅仅是个“?”
TombStorn 2012-11-01
  • 打赏
  • 举报
回复
你的题目和你的需求有问题,你实际要的是验证是否是2位数。
TombStorn 2012-11-01
  • 打赏
  • 举报
回复
^[1-9][0-9]$
龙四 2012-11-01
  • 打赏
  • 举报
回复
1、测试过上面的正则么

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

[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

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


但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理
[/Quote]
Mr_Leaco 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

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

但是第一位可以没有,就是说 输入 “8” 也正确,这样怎么处理
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
Java么?
str.matches("[1-9][0-9]?");

51,402

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧