java - 使用正则表达式解析数学表达式

标签 java regex parsing

我想使用正则表达式解析数学表达式。 例如,表达式“-4-2-1”被解析为“-4”、“-”、“2”、“-”和“1”。但是,从我的正则表达式中,我只能得到“-”,“4”,“-”,“2”,“-”,“1”

这是我的正则表达式 ^-?\d*\.{0,1}\d+$|[+-×÷^√∛!πe%]

最佳答案

您无法为所有类型的方程创建正则表达式,但对于您的情况,您可以通过

改进您的正则表达式
  • 使 ^- 部分可选,
  • 在字符类中转义 -(否则将被视为范围运算符)

顺便说一句,{0,1} 可以替换为 ?

所以尝试使用 "(^-)?\\d*\\.?\\d+|[+\\-×÷^√∛!πe%]"

关于java - 使用正则表达式解析数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31522300/

相关文章:

java - 基础Java,在方法之间传递数据

java - ListView 未反射(reflect) notifyDataSetChanged() 的更改

javascript - 我将使用什么 JavaScript 正则表达式来发现一个字符串包含一个开放的 HTML 标记但不包含一个关闭的 HTML 标记?

java - Apache Velocity IncludeTool - 条件包含

java - JMX工具来源

java - 在 FormBean 中设置属性之前如何抛出异常或设置 ActionError

sql - 正则表达式检测 SQL 注入(inject)

regex - Perl:使用 ?: 运算符时出现意外匹配变量

ios - Swift 无法解析 JSON : Could not cast value of type '__NSCFDictionary' to 'NSArray' error

javascript - 按子键值对 JSON 对象的子键进行排序