求正则表达式^[0-9]+ [+-*\] [0-9]+ = [0-9]+$的解释

kpzhy2022-10-04 11:39:541条回答

已提交,审核后显示!提交回复

共1条回复
durian123 共回答了11个问题 | 采纳率81.8%
FamDestiny 解释是错误的.
塑料做的铁钉 是对的.可惜没给你解释
1.^代表以xxx开头的行,
[0-9]+表示至少出现一个0-9之间的数字.
合起来 就是 必须开头的数字是0-9之间的数字,个数最少一个
2.[+-*] 表示这是个符号中的其中一个,也就是 + - * /运算符
3.[0-9]+ 接着.后面跟着必须是 0-9之间的数字.个数最少一个
4 = 等号就表示 =号这个符号
5 [0-9]+$ ..$表示一行的结尾,所以这里的意思必须用0-9之间的字符结果
合起来的功能.就是 塑料做的铁钉 说的
判断选择 加减乘除 这样的 运算式而已
1年前

相关推荐

大于400,小于500的整数,用正则表达式怎么表达
sellina911年前1
暗之风水 共回答了22个问题 | 采纳率86.4%
1.以gvim脚本为例:
//
-- < 表示字符串的开头
-- > 表示字符串的结尾
-- d 表示0-9的数字
-- [1-9] 表示1-9的数字
-- | 表示或
不知道你给的这个事什么脚本,你可以按照上面给的事例去查一下你使用的正则表达式,让后依葫芦画瓢.
2.我这里也给个表达式(不知道对不对,以为我不知道你使用的那个脚本,你可以试一下,要是不行就按照我前面给的方法去做)
/b(40[1-9]|4[1-9]d)b/
b -- 表示锚定,表示字符串的开始或者结束
如何使用正则表达式判断用户输入的公式是否合法.允许四则混合运算和多重括号.
易水寒201年前1
haoyou_168 共回答了9个问题 | 采纳率77.8%
^
!.*[^d+-*/()]) #规则0,字符串必须由数字,符号和括号组成
!.*)d) #规则A,不允许右括号后接数字
!.*[+-*/]([+-*/]|))) #规则B,不允许符号后面接符号或右括号
!.*([+*/]) #规则C,不允许左括号后接运算符(- 可以表示负号)
!.*(d|))() #规则D,不允许左括号前有数字或右括号
=d|-|() #规则E,字符串开头必须是,数字,负号,左括号中的一个
=.*(d|))$) #规则F:结尾必须是数字或者右括号
[^()]*
#开始匹配,捕获括号,使用平衡组来判断括号数量是否相等,需要.NET的支持
(
(
'open'()
[^()]*
)+
(
'-open'))
[^()]*
)+
)*
(open)(?!)) #规则G:左右括号数量必须相等
$
最终的正则表达式为:
^(?!.*[^d+-*/()])(?!.*)d)(?!.*[+-*/]([+-*/]|)))(?!.*([+*/])(?!.*(d|))()(?=d|-|()(?=.*(d|))$)[^()]*(((?'open'()[^()]*)+((?'-open'))[^()]*)+)*(?(open)(?!))$
没考虑空格的情况,因为考虑空格需要加很多很多个s*,大大降低可读性
由于使用了平衡组,此正则表达式需要在.NET环境下运行

大家在问