C#正则表达式匹配混合运算公式
例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费,需要验证合法性,不许匹配中括号!还有换成数字的运算公式也要!最好还有取出括号内容的。。。正则表达式实在太复杂了...
例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费 ,需要验证合法性,不许匹配中括号!
还有 换成数字的运算公式也要!
最好还有取出括号内容的。。。
正则表达式实在太复杂了,n多符号。。 展开
还有 换成数字的运算公式也要!
最好还有取出括号内容的。。。
正则表达式实在太复杂了,n多符号。。 展开
3个回答
展开全部
问题在于,你到底想要实现什么功能。
如果只是匹配“((重量-首重)*续重费用+首重费用)*折扣率+挂号费”这样固定形式的文本
那这样就可以了“\(\(重量-首重\)\*续重费用\+首重费用\)\*折扣率\+挂号费”
如果你想要匹配的是数字,那把文字换成\d+就可以了,捕获数字可以通过分组来捕获。
如果不是固定形式的文本,那么怎么知道哪个是重量,哪个是挂号费呢??
如果只是想要检查括号是否匹配(左右括号数量是否相等),可以利用平衡组来检查
^[\w+-*/]*(((?'open'\()[\w+-*/]*)+((?'-open'\))[\w+-*/]*)+)*(?(open)(?!))$
平衡组需要.net的支持,如果是其它平台
可以分别对每个括号进行匹配,从小到大。
分成很多步来匹配,也好捕获单个括号中的内容。
如果只是匹配“((重量-首重)*续重费用+首重费用)*折扣率+挂号费”这样固定形式的文本
那这样就可以了“\(\(重量-首重\)\*续重费用\+首重费用\)\*折扣率\+挂号费”
如果你想要匹配的是数字,那把文字换成\d+就可以了,捕获数字可以通过分组来捕获。
如果不是固定形式的文本,那么怎么知道哪个是重量,哪个是挂号费呢??
如果只是想要检查括号是否匹配(左右括号数量是否相等),可以利用平衡组来检查
^[\w+-*/]*(((?'open'\()[\w+-*/]*)+((?'-open'\))[\w+-*/]*)+)*(?(open)(?!))$
平衡组需要.net的支持,如果是其它平台
可以分别对每个括号进行匹配,从小到大。
分成很多步来匹配,也好捕获单个括号中的内容。
展开全部
问题都没说清楚,让别人怎么帮你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
任意层的括号?这要用到递归吧。你所说的合法性是指小括号的闭合吗?不许匹配中括号,那大括号呢,其他的符号呢?
追问
我的意思是不需要匹配中括号,
任意层小括号,如果无法实现,就三层把!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询