一个简单正则的疑惑

等不到来世 2010-01-12 11:39:34
匹配1位数字或2位数字:
^\d|\d\d$


结果3位数字也能匹配!

我明明加了^$这样的起止符,为何没起到限定作用呢?

(上面是个小测试,我实际需求是0-65535之间的数字,最多4位小数。后来发现存在上面的问题)

环境:vs2005,c#,.net2.0
...全文
121 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
等不到来世 2010-01-12
  • 打赏
  • 举报
回复
醍醐灌顶,茅塞顿开!
我现在自己再尝试写一下那个实际需要的正则,嘿嘿!
slowgrace 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lxcnn 的回复:]
在2.2.7节有简单介绍
正则表达式学习参考

因为比较简单,所以没有单独介绍
[/Quote]

院长,有件重要的事情需要得到您的批示,见这个帖子18楼。
mbh0210 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lxcnn 的回复:]
在2.2.7节有简单介绍
正则表达式学习参考

因为比较简单,所以没有单独介绍
[/Quote]

恩,楼主看看过客的博客,总结的比较好。
MYT_1 2010-01-12
  • 打赏
  • 举报
回复
同意三楼的
lovexilove 2010-01-12
  • 打赏
  • 举报
回复
^(\d|\d\d)$
段传涛 2010-01-12
  • 打赏
  • 举报
回复
来晚了 郁闷
^(\d|\d\d)$
灵雨飘零 2010-01-12
  • 打赏
  • 举报
回复
^(\d|\d\d)$
-过客- 2010-01-12
  • 打赏
  • 举报
回复
在2.2.7节有简单介绍
正则表达式学习参考

因为比较简单,所以没有单独介绍
antony1029 2010-01-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mbh0210 的回复:]
^\d|\d\d$
因为你的|,你的正则可以理解为你\d开头,以\d\d结尾的

可以把你的修改为:C# code^(\d|\d\d)$
[/Quote]
学习!
波导终结者 2010-01-12
  • 打赏
  • 举报
回复
你这样的写法相当于
(^\d)|(\d\d$)

了,正确的写法是3楼的
^(\d|\d\d)$
mbh0210 2010-01-12
  • 打赏
  • 举报
回复
只要满足以数字开头,以两个数字结尾的,你正则都会获取到值。
-过客- 2010-01-12
  • 打赏
  • 举报
回复
是“|”的作用域问题,这种验证一定要用()限定作用范围的

^(\d|\d\d)$ 
//当然,这种简单的是没必要这样写的
^\d{1,2}$
sz_free_bird 2010-01-12
  • 打赏
  • 举报
回复
^\d{1,4}$
mbh0210 2010-01-12
  • 打赏
  • 举报
回复
^\d|\d\d$
因为你的|,你的正则可以理解为你\d开头,以\d\d结尾的

可以把你的修改为:
^(\d|\d\d)$
  • 打赏
  • 举报
回复
google 一下 答案就出来了
手抓宝 2010-01-12
  • 打赏
  • 举报
回复
^\d{1}|\d{2}$
等不到来世 2010-01-12
  • 打赏
  • 举报
回复
0-65535之间的数字,最多4位小数的正则是:
^(\d|([1-9]\d)|([1-9]\d{2})|([1-9]\d{3})|([1-5]\d{4})|(6[0-4]\d{3})|(65[0-4]\d{2})|(655[0-2]\d)|(6553[0-5]))(\.\d{1,4})?$


谢谢大家,结贴。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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