【正则】感觉这个正则有点不好整

wangxianshou 2012-08-29 10:14:14
目的
检查是不是一个合法的运算式,运算因子是业务中的东西
例如
(库存量+进货量-破损量)/年间平均库存 是个正确的公式,单个括号
(库存量+进货量-破损量)/ 是个错误的公式
(库存量+进货量-破损量)/年间平均库存+(A-B*C) 是个正确的公式,多个括号
-----------------------------------------------------------------------------------------------------
内容描述(请无视应用场景)

1.运算相关符号 + - * / = ( )【同类不一定能紧邻 例如+/,不可以,+(可以,*(可以】

2. 限定语1 A B C 【同类一定不能紧邻 例如AB,不可以】
限定语2 X Y Z 【同类一定不能紧邻 例如XZ,不可以】
限定语3 L M N 【同类一定不能紧邻 例如MN,不可以】
顺序必须按照限定语1,2,3来排,
1的必须有,2和3的可以有可以没有
限定语不能独自存在
不同限定语必须紧邻,比如 AXL

3.必须带上限定语的因子(限定语不能独存;同类一定不能紧邻,限定语和被修饰因子紧邻)
Apple Pear Orange

4.不能带限定语的因子(同类一定不能紧邻)
Pig Monkey Dog Cat Tiger
------------------------------------------------------------------------------------------------
举几个错误例子
1.PigMonkey 同类紧邻,错
2.APig Pig 不能被修饰,错
3.A*Apple 修饰符和因子没有紧邻,错
4.XL 限定语1必须出现却没有出现,错
5.A+X-L 限定语间必须紧邻
举几个个正确例子(结尾必须为右括号,或者因子,配对的括号可以出现N多次)
1.Pig
1.Pig+Tiger
1.Pig+Tiger*ALOrange
1.(Pig+Tiger*ALOrange)/BYMApple
1.(Pig+Tiger*ALOrange)/(BYMApple/Monkey)
1.(Pig+Tiger*ALOrange)/(BYMApple/Monkey)+(Dog-CPear)


请问这样的正则表达式该如何实现,可能描述的大家一头雾水,就根据要求来弄吧
谢谢您的支持
...全文
49 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧