1

我正在尝试创建一个计算器,其中操作数是单词。它可以重复任意次数。例如 EmpName+xyz 或 EmpName 或 x+rr+fff。它应该拒绝这样的模式,例如 EmpName+
我创建了一个正则表达式:

 (?m)(?<Operand>^[a-z].*?)(?<Operator>[+*])  

On this output:  
  1) a + b  
  2) ab+dddd  
  3) ab*fffff*ggggg  
  4) dfg+fg4444+fgf4  
  5) xxxxx  
But it only targets 1,2,3,4 and up to only first operator. Output in regex 2.05. 
"Operand: [ab]"  
"Operator:[+]"  
I am using regex builder 2.05 to test my regex.  How i can repeat this pattern any number of times?  Thanks in advance.
4

1 回答 1

0

这通常表示为

  • 操作数后跟(运算符 操作数)一次或多次

那是

  • (?m)<Operand>([+*]<Operator>)*

是的,我也需要括号以及除号、百分比、减号。

然后我建议考虑使用真正的解析器。平衡括号的语言不规则。

于 2012-05-14T11:39:10.370 回答