C#正则表达式,匹配3或5位的数字

,表达式1:“\d{3}|\d{5}”我写成这样,可以匹配3、4、5个数字,请问为什么?表达式2:”\d{3|5}“,输入个数1-5的数字字符串匹配结果全为false,为... ,表达式1:“\d{3}|\d{5}” 我写成这样,可以匹配3、4、5个数字,请问为什么?

表达式2:”\d{3|5}“,输入个数1-5的数字字符串匹配结果全为false,为什么?表达式2可以匹配什么样的字符串?
表达式3:"\d{[3,5]}",问题如表达式2。
表达式4:”\d({3}|{5}“,编译无法通过
表达式5:“^\d{3}$|^\d{5}$”,这个匹配结果正确,但我想化简该表达式,比如把\d提到前面去,提公因式类似的方法,可以做到吗,怎么做?
展开
 我来答
fei3030
推荐于2017-11-28
知道答主
回答量:19
采纳率:0%
帮助的人:11.8万
展开全部
表达式1, 应该只能匹配3个或者5个数字

2,3,4,表达式格式错误
表达式5也可以^(\d{3}|\d{5})$,这样只能匹配一行里面只有3个或者5个数字。
追问
只有4编译不通过,其它的不能匹配题目要求,但我想知道为什么,还有他们可以匹配什么样的字符串,正则表达式的基本内容我也看过了,所以并不是一无所知,呵呵。而且表达式1可以匹配的3、4、5个数字我试过了,实践才有发言权
追答
我多解释一点吧,1)其实只能匹配3个数字,多于3个的也只是匹配到3个,如果6个数字,就是匹配2次3个数字。 你可以反过来用\d{5}|\d{3},这样5位数的匹配会优先。 其实你应该加一些边界匹配来提高精确。 2)本身表达式是对的,但是不能匹配你的要求,这个表达是先用|分开的,所以它匹配一个数字加"{3" 或者"5}". 类似的3)匹配的是一个数字, "{",数字3或者5,"}"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-26
展开全部
表达式1只能匹配3个数字 5位数字永远包含3位 所以 后面的永远执行不到

表达式2 3 4 不正确 没这种用法 正确格式为 \d{m,n} m>=0 n>=0 且 m<n
表达式5的效果等于 \d{5}|\d{3}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哲事姓无
2013-07-26 · TA获得超过1176个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:441万
展开全部
其他人说的基本正确。你有一个经验是错误的,你说第一题能匹配到3、4、5个数字,但它不能匹配出4位数字,第一题的表达式只能匹配出3位或是5位数位,而你输入4位数字时,因为它符合3位数字,所以也会被匹配出。

匹配次数的正则表达式格式是有要求的,请去看手册,不要想当然的写,不然是不生效的。
追问
手册只给出一般的规则,碰到比较复杂的问题时还是要把简单的规则拼接起来才能得出结果,而且答案肯定也不尽相同,根据对一些简单资料的理解   "\d{[35]}"拼接了[abc](中括号内取一个字符) 和\d{n}(n个数字)两种规则,并不是想当然。 你的理解,是不是"\d{3}"在输入1234时也可匹配?
追答
是的。\d{3}是匹配3位数字,而1234符合3位数字的要求,所以就匹配出来了,而匹配的结果是123。
\d{[35]}是你的理解错误。有一个叫的文章向你推荐一下。我是看这篇文章入门的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦里寻你我他
2013-07-26 · TA获得超过2199个赞
知道大有可为答主
回答量:2171
采纳率:42%
帮助的人:1208万
展开全部
^\d{3,5}$ 最少3个,最多5个数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
675685015
2013-07-26
知道答主
回答量:32
采纳率:0%
帮助的人:15.6万
展开全部
表达式1 匹配三位数,五位数,
\d是匹配数字(0-9),{x,n}是匹配x到n次,x<=n的,
表达式3 匹配三位数,四位数,五位数
其他的我也不清楚了,给你一个网址http://www.wangqi.com/n9250c53.aspx这个讲的很详细
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式