如何使用正则表达式判断用户输入的公式是否合法.允许四则混合运算和多重括号.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 21:37:37
如何使用正则表达式判断用户输入的公式是否合法.允许四则混合运算和多重括号.

如何使用正则表达式判断用户输入的公式是否合法.允许四则混合运算和多重括号.
如何使用正则表达式判断用户输入的公式是否合法.允许四则混合运算和多重括号.

如何使用正则表达式判断用户输入的公式是否合法.允许四则混合运算和多重括号.
^
!.*[^\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环境下运行

如何使用正则表达式判断用户输入的公式是否合法.允许四则混合运算和多重括号. js 判断一个值是否为数字我在做一个JSP页面,有一个text需要输入一个金额,我现在试用了正则表达式来限制这个text只能输入数字和小数点,但是会有这样的情况比如用户输入了15...1,这个是可以 php正则表达式判断末三位数字是否相同的正则表达式请问改如何匹配,我写的表达式比如’32225‘也行,可是我只要末三位相同 正则表达式判断只能输入0-1之间的小数(小数点后只要两位) 用正则表达式如何判断一个输入框内的字符必须是数字或者小数,如果是小数必须这能是两位小数,等待,请朋友们帮忙, 正则表达式:匹配不以.tmp 结尾的正则表达式怎么写我写的是([^.]|(.([^t]|(t([^m]|(m[^p]))))))$ 该表达式是否正确,如果不正确,正确的应该如何写?如何验证正则表达式是否正确? 在js中正则表达式:判断是否非负数.有小数点的 判断非负数(整数和小数)的正则表达式如何写?在js中如何用? 正则表达式:5位数字或9位数字的判断  如何写? 正则表达式 如何判断不能有 空格半个忙,一个字符串 ,16位,不能包含空格的正则表达式怎么写,asp.net 的验证控件, 添加js正则表达式验证 具体在下面如何验证用户输入的只能是数字 ,并且如果输入的是整数的话 最大不能超过11位 ,如果输入的有小数的话那就是整数部分为11位 小数点为两位,加一个点就是14 正则表达式 小数求一正则表达式,判断百分率,100之间的数,可以是整数,也可以带2位的小数.楼下两个表达式,如果输入一个4位的整数也是对的 求高手帮忙写一个正则表达式,用来判断一个只能输入数字的文本框若输入英文、汉字或符号显示错误信息 编写程序,判用户输入的数是否为整数;如是,判断其奇偶性… 求正则表达式求 只能输入6位正整数(可以是0开头,例如000000)的正则表达式 js用正则写一个判断:一个输入六位数字的输入框里判断前三位数是否与后三位数字一样 js 用正则表达式验证只允许输入数字,或者是数字后两位小数点,如何写? 正则表达式 如何删除不含有某个词汇的句子?