RegEx解决方案为1.23 + 1.23 + 1

时间:2015-07-03 14:35:18

标签: regex

我搜索了很多但却找不到这个正则表达式。我的问题是我制作了一个计算器,但无法完全验证我的显示器。我的情况是点 我需要我的正则表达式:digit dot digit operator digit dot(1.23+1.23+1.)。点必须只放置一次不像(1..23+ 1.1.1)。我找到了类似的正则表达式,但它没有涵盖案例(1.23 +1.) 这是我的注册表 - > /[0-9-+/*]+(\.[0-9][0-9]?)?/g

2 个答案:

答案 0 :(得分:0)

检查出来(demo):

/^(([-+*\/ ]+)?(\b(\d+\.\d+)\b|\d))+$/

但只有当每个字符串有一个等式时才会起作用 - 它在字符串的开头(^)和蚂蚁结尾($)匹配。但是,您也可以将其与/m或/和/g修饰符一起使用。

修改

如果只是关于' - '字符足以将其添加到字符类:

/^(([-–+*\/ ]+)?(\b(\d+\.\d+)\b|\d))+$/

答案 1 :(得分:0)

可以使用此

^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:[+-](?:\d+(?:\.\d*)?|\.\d+))*$

扩展:

 ^                             # BOS
 [+-]?                         # Optional Plus or minus
 (?:                           # Decimal term
      \d+ 
      (?: \. \d* )?
   |  \. \d+ 
 )
 (?:                           # Optionally, many more terms
      [+-]                          # Required Plus or minus
      (?:                           # Decimal term
           \d+ 
           (?: \. \d* )?
        |  \. \d+ 
      )
 )*
 $                             # EOS