我搜索了很多但却找不到这个正则表达式。我的问题是我制作了一个计算器,但无法完全验证我的显示器。我的情况是点
我需要我的正则表达式: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
答案 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