C#正则表达式匹配混合运算公式

例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费,需要验证合法性,不许匹配中括号!还有换成数字的运算公式也要!最好还有取出括号内容的。。。正则表达式实在太复杂了... 例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费 ,需要验证合法性,不许匹配中括号!
还有 换成数字的运算公式也要!
最好还有取出括号内容的。。。
正则表达式实在太复杂了,n多符号。。
展开
 我来答
绯弹亚丝娜
2014-02-20 · TA获得超过1094个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:135万
展开全部
问题在于,你到底想要实现什么功能。

如果只是匹配“((重量-首重)*续重费用+首重费用)*折扣率+挂号费”这样固定形式的文本
那这样就可以了“\(\(重量-首重\)\*续重费用\+首重费用\)\*折扣率\+挂号费”
如果你想要匹配的是数字,那把文字换成\d+就可以了,捕获数字可以通过分组来捕获。

如果不是固定形式的文本,那么怎么知道哪个是重量,哪个是挂号费呢??

如果只是想要检查括号是否匹配(左右括号数量是否相等),可以利用平衡组来检查
^[\w+-*/]*(((?'open'\()[\w+-*/]*)+((?'-open'\))[\w+-*/]*)+)*(?(open)(?!))$

平衡组需要.net的支持,如果是其它平台
可以分别对每个括号进行匹配,从小到大。
分成很多步来匹配,也好捕获单个括号中的内容。
SUN5507865
2014-02-20 · TA获得超过256个赞
知道答主
回答量:59
采纳率:0%
帮助的人:34.8万
展开全部
问题都没说清楚,让别人怎么帮你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自由de王国
2014-02-20 · TA获得超过1066个赞
知道小有建树答主
回答量:661
采纳率:50%
帮助的人:840万
展开全部
任意层的括号?这要用到递归吧。你所说的合法性是指小括号的闭合吗?不许匹配中括号,那大括号呢,其他的符号呢?
追问
我的意思是不需要匹配中括号,
任意层小括号,如果无法实现,就三层把!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式