永发信息网

正则表达式 10|[1-9] 和[1-9]|10有什么区别,为什么验证结果不一样

答案:4  悬赏:0  手机版
解决时间 2021-03-09 11:44
正则表达式 10|[1-9] 和[1-9]|10有什么区别,为什么验证结果不一样
最佳答案
和括号无关

某种意义上来说其实这两种是等效的(一会儿有详细说),只不过楼主的写的不严谨!

如果楼主想匹配的是1-10,那我来猜猜楼主的几种写法:(专讲数字,不讲字符串)

第1种:/10|[1-9]/; 这种写法的特点在哪呢?这个正则其实匹配的是除0以外的所有正整数,为什么?因为[1-9]说的是只要验证的这个数包含1到9的任意数字,均会返回true。"10|"是多余的,没有这个也是能返回true。

第2种:/[1-9]|10/; 这种情况同第1种,不多说,匹配的是除0以外任何数。

第3种:/^10|[1-9]$/; 这种写法较第1种成熟些,但仍不严谨,因|的优先级较弱,所以可以这么理解,以10开头,或者[1-9]结尾,也就是说匹配尾数不为0的任何数,20,30,....10000,但由于^10,所以,10可以匹配。

第4种:/^[1-9]|10$/; 这种写法在理解上,同第3种,只不过匹配的是以1到9中任意数为开头的数字。想一想,除了0,哪些数字是以1,2...9开头的数字?所有数!

第5种/^(10|[1-9])$/; 这种才是匹配1-10的正确写法!效果同/^([1-9]|10)$/;
既然是正确的就没什么好说的了

呵呵,楼主自己再努力考虑考虑。

===================

啊哦,打完才发现0分~ 呃....-_-! 赚人气,赚人气,哈哈,支持的按下大拇指,谢谢。
全部回答
你的写法不严谨所致 正则是比较贪婪的 ^([1-9]10)$ 就对了
1.可以不加括号,|的优先级别最低
2.|含义是,该符号前面匹配成功后就不会再继续匹配后面的了,所以[1-9]就可以匹配两次1和0,不会继续匹配10了
所以[1-9]|10改造为下面的就对了
\b[1-9]\b|\b10\b
要加上括号,例如:(10)|[1-9]
你的10|[1-9]机器理解为1+0|[1-9],或者|前后只结合一个符号
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
游戏点启动游戏之后就没反应了怎么回事
梦见孩子长了那莫多手指头
百万房地产怎么去啊,有知道地址的么
520,940胶水的数字什么意思今天看到了有种胶
达菲的分子式是C16H31N2PO8,其相对分子质量
EXP 01 09 11是保质期到2011年1月9日吗?
宏阳五金机电我想知道这个在什么地方
南京再出3地王,房价最高奔8万,怎么办
样,请问是宝宝的胎心还是腹主动脉的跳动,如
电子天平按照检定分度值和检定分度数,划分成
胆囊穴是临床常用穴。其穴所属:A.足太阳膀胱
Ghibli多少公里首保
6005和6005A哪个强度好一点
达尔加普克斯套这个地址在什么地方,我要处理
今年专科分数怎么算
推荐资讯
鼻梁上痘痘是什么原因
A的爷爷和B的外婆是同一母亲生,A和B能结婚吗
请问,火怎么加点?????,入题
九位我想知道这个在什么地方
店里一天不上班怎么向顾客说明
【背信弃义】背信弃义与见利忘义这两个词语含
义乌装柜宁波报关,是不是装好柜后可以直接回
只有外感而无内生的邪气是A.风B.寒C.燥D.火E.
河北保定的家乡的文化作文
石油管理学院停车场在什么地方啊,我要过去处
江苏整搜在线电子有限公司怎么样?
结婚时候第一次向老婆求婚的一段话,说什么好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?