使用 正则表达式 验证四则运算表达式
2006-10-28 10:48
603 查看
Regex regex = new Regex(@"
^ (?#匹配开头)
/s*[-+]? (?#开头可以出现正负号)
(((([0-9]/,?[0-9]*)+/.?[0-9]*))+(/s*$|/s*([-+*/]+?|[<>!=]+)/s*))* (?#可选数-符号-数-符号-……-数-符号或结尾)
(
(
(?<o>/()/s* (?#左括号,保存到o名字下)
[-+]? (?#可选正负号)
(((([0-9]/,?[0-9]*)+/.?[0-9]*))+/s*([-+*/]+?|[<>!=]+)/s*)* (?#可选数-符-数-符……)
)+ (?#可以重复出现左括号)
((([0-9]/,?[0-9]*)+/.?[0-9]*))+ (?#左右括号之间最起码需要一个操作数)
(
/s*(?<-o>/)) (?#右括号,匹配的同时去掉一个左括号)
(/s*([-+*/]+?|[<>!=]+)/s*((([0-9]/,?[0-9]*)+/.?[0-9]*))+)* (?#可选符-数-符-数……)
)+ (?#可以重复出现右括号,仅当还有左括号剩余)
(/s*$|/s*([-+*/]+?|[<>!=]+)/s*) (?#要么结尾,要么在下一个左括号出现之前出现一个运算符)
)* (?#重复出现左括号)
(?(o)(?!)) (?#如果还有左括号剩余就不匹配任何东西)
(?<=[0-9)]/s*) (?#检查结尾前是否数字或右括号)
/s*$ (?#匹配结尾)
", RegexOptions.IgnorePatternWhitespace);
From: http://topic.csdn.net/t/20051227/16/4484337.html
^ (?#匹配开头)
/s*[-+]? (?#开头可以出现正负号)
(((([0-9]/,?[0-9]*)+/.?[0-9]*))+(/s*$|/s*([-+*/]+?|[<>!=]+)/s*))* (?#可选数-符号-数-符号-……-数-符号或结尾)
(
(
(?<o>/()/s* (?#左括号,保存到o名字下)
[-+]? (?#可选正负号)
(((([0-9]/,?[0-9]*)+/.?[0-9]*))+/s*([-+*/]+?|[<>!=]+)/s*)* (?#可选数-符-数-符……)
)+ (?#可以重复出现左括号)
((([0-9]/,?[0-9]*)+/.?[0-9]*))+ (?#左右括号之间最起码需要一个操作数)
(
/s*(?<-o>/)) (?#右括号,匹配的同时去掉一个左括号)
(/s*([-+*/]+?|[<>!=]+)/s*((([0-9]/,?[0-9]*)+/.?[0-9]*))+)* (?#可选符-数-符-数……)
)+ (?#可以重复出现右括号,仅当还有左括号剩余)
(/s*$|/s*([-+*/]+?|[<>!=]+)/s*) (?#要么结尾,要么在下一个左括号出现之前出现一个运算符)
)* (?#重复出现左括号)
(?(o)(?!)) (?#如果还有左括号剩余就不匹配任何东西)
(?<=[0-9)]/s*) (?#检查结尾前是否数字或右括号)
/s*$ (?#匹配结尾)
", RegexOptions.IgnorePatternWhitespace);
From: http://topic.csdn.net/t/20051227/16/4484337.html
相关文章推荐
- Js中使用正则表达式验证输入是否有特殊字符
- .net验证控件的属性与使用技巧---总结及正则表达式语法
- javascript中使用正则表达式进行字符串验证示例
- 如何使用JavaScript和正则表达式进行数据验证
- 使用javascript和正则表达式进行数据验证
- 在JS中使用正则表达式验证电子邮箱是否正确
- JavaScript使用正则表达式进行验证
- ios使用常用正则表达式验证密码身份证手机号
- java正则表达式的验证和使用实例(含SSH)
- C#中使用正则表达式验证电话号码、手机号、身份证号
- 2011-09-02[C#中使用正则表达式验证]
- C#中使用正则表达式验证电话号码、手机号、身份证号
- 输入一个Email地址,然后使用正则表达式验证该Email地址是否正确。
- .net验证控件的属性与使用技巧---总结及正则表达式语法
- Java使用正则表达式验证常用字符串
- iOS- 使用正则表达式NSRegularExpression 来验证textfiled输入的内容
- C#使用正则表达式验证电话号码、手机号、身份证号代码
- jquery使用正则表达式验证email地址的方法
- ASP.NET 使用CustomValidator调用js函数动态修改验证TextBox的正则表达式,无刷新
- Android 使用正则表达式验证邮箱格式是否正确