C#正则表达式匹配混合运算公式例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费 ,需要验证合法性,不许匹配中括号!还有 换成数字的运算公式也要!最好还有取出括号内容的.正则表达式实

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 12:42:21
C#正则表达式匹配混合运算公式例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费,需要验证合法性,不许匹配中括号!还有换成数字的运算公式也要!最好还有取出括号内容的.正则表达式实C#正则表达式

C#正则表达式匹配混合运算公式例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费 ,需要验证合法性,不许匹配中括号!还有 换成数字的运算公式也要!最好还有取出括号内容的.正则表达式实
C#正则表达式匹配混合运算公式
例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费 ,需要验证合法性,不许匹配中括号!
还有 换成数字的运算公式也要!
最好还有取出括号内容的.
正则表达式实在太复杂了,n多符号.

C#正则表达式匹配混合运算公式例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费 ,需要验证合法性,不许匹配中括号!还有 换成数字的运算公式也要!最好还有取出括号内容的.正则表达式实
问题在于,你到底想要实现什么功能.
如果只是匹配“((重量-首重)*续重费用+首重费用)*折扣率+挂号费”这样固定形式的文本
那这样就可以了“\(\(重量-首重\)\*续重费用\+首重费用\)\*折扣率\+挂号费”
如果你想要匹配的是数字,那把文字换成\d+就可以了,捕获数字可以通过分组来捕获.
如果不是固定形式的文本,那么怎么知道哪个是重量,哪个是挂号费呢?
如果只是想要检查括号是否匹配(左右括号数量是否相等),可以利用平衡组来检查
^[\w+-*/]*(((?'open'\()[\w+-*/]*)+((?'-open'\))[\w+-*/]*)+)*(?(open)(?!))$
平衡组需要.net的支持,如果是其它平台
可以分别对每个括号进行匹配,从小到大.
分成很多步来匹配,也好捕获单个括号中的内容.