判定0到100之内的整数,在网上看到了一些正则表达式,也没时间去学,所以自个儿琢磨一下,请分析下以下两条式子的区别,最好在解说下这两条式子的逻辑意思。(1)^(0|[0-9][0-9]?|100)$(2)/^(?:0|[1-9][0-9]?|100)$/ //这个式子两边的斜杠有什么作用吗,起到分隔的作用吗,什么情况要用到?
第一个式子:^(0|[0-9][0-9]?|100)$^表示字符串的开头,|表示或,0|[0-9][0-9]?|100表示0或者[0-9][0-9]?或者100,最开始的0是多余的.[0-9][0-9]? 中[0-9]表示数字0到9任意一个字符,第二个[0-9]?后面的问号表示第二个[0-9]可以没有,所以[0-9][0-9]?就表示1到2位数字,可以是00,01这种,这个已经包括了0。最后的$表示字符串的结尾,整个式子匹配1-2位数字或者100(2)/^(?:0|[1-9][0-9]?|100)$/ 两边的斜杠是某些编程语言用来标记正则表达式的符号,并不是正则正则表达式的一部分这个正则中间是[1-9][0-9]?匹配1-2位数字,但第一位不能为0,中间这部分不能匹配数字0,也不能匹配01,所以这个正则中最开始的数字0是有用的,匹配数字0这个正则匹配1-2位不以0开头的数字或者0或者100
首先,判断0-100的整数的正则表达式可以这样:^[0-9]|[1-9][0-9]|100$[0-9] 表示一个范围在0到9的数;[1-9][0-9]表示10位范围是1-9,个位范围是0-9,即匹配了10到99;最后是100。对你的两个正则表达式的解释:(1)^(0|[0-9][0-9]?|100)$0和100不用说了,中间匹配了0到9,00到99,其中00到09这种形式严格来说是不对的。这个表达式中,圆括号表示一个捕获,即保存圆括号里面匹配到的内容在之后使用。例如可以在替换的时候用\1,\2(或$1,$2)的形式用在替换字符串里表示括号里面匹配到的内容;符号 | 表示“或”,即并集。[0-9] 表示可选范围,这里是从0到9,另外常见的还有[a-zA-Z]这样的形式;问号?表示出现0次或1次。^表示行开始位置,$表示行结束位置(2)/^(?:0|[1-9][0-9]?|100)$/这里前后的斜杠是用在某些语言(例如javascript)里面表示斜杠内的内容是正则表达式。例如:var pattern = /^abc$/;这个正则表达式比第一个多了?:,这个是表示非捕获,即不保存圆括号里面的内容来给以后使用。