
正则表达式的一些问题,帮忙分析下
判定0到100之内的整数,在网上看到了一些正则表达式,也没时间去学,所以自个儿琢磨一下,请分析下以下两条式子的区别,最好在解说下这两条式子的逻辑意思。(1)^(0|[0-...
判定0到100之内的整数,在网上看到了一些正则表达式,也没时间去学,所以自个儿琢磨一下,请分析下以下两条式子的区别,最好在解说下这两条式子的逻辑意思。
(1)^(0|[0-9][0-9]?|100)$
(2)/^(?:0|[1-9][0-9]?|100)$/ //这个式子两边的斜杠有什么作用吗,起到分隔的作用吗,什么情况要用到? 展开
(1)^(0|[0-9][0-9]?|100)$
(2)/^(?:0|[1-9][0-9]?|100)$/ //这个式子两边的斜杠有什么作用吗,起到分隔的作用吗,什么情况要用到? 展开
2个回答
展开全部
第一个式子:^(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|[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

2025-09-24 广告
URule Pro Java 规则引擎,一款给业务人员使用的可视化商业决策规则引擎系统,打开浏览器即可开始设计业务规则;URule Pro是一款自主研发纯Java规则引擎,亦是一款国产智能风控决策引擎,可以运行在Windows、Linux、...
点击进入详情页
本回答由锐道提供
展开全部
首先,判断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$/;
这个正则表达式比第一个多了?:,这个是表示非捕获,即不保存圆括号里面的内容来给以后使用。
^[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$/;
这个正则表达式比第一个多了?:,这个是表示非捕获,即不保存圆括号里面的内容来给以后使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询