C#正则表达式匹配混合运算公式例:((重量-首重)*续重费用+首重费用)*折扣率+挂号费 ,需要验证合法性,不许匹配中括

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

阿当仕 幼苗

共回答了31个问题采纳率:90.3% 举报

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

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 9.398 s. - webmaster@yulucn.com