java - 用于匹配数学表达式的正则表达式
问题描述
我目前的任务是验证给定表达式的格式是否正确。前任。“7x^2 + 2x +1”会通过,但“7x72”或格式错误的东西会失败。
试图
\d*x{0,1}(\^\d*){0,1}
它检查函数的每一部分是否存在,系数,可选 x ,可选指数。我只是不确定如何实际格式化它,以便它必须对 +/- 符号之间的每个部分都是正确的,否则该函数无法正确键入。
我该如何解决这个问题?
解决方案
尝试这个:
((-?\d+)x\^2\s*[+-]\s*)?(\d+)x\s*([+-]\s*\d+)
(-?\d+)x\^2\s*[+-]\s*)?
-?\d+
- 0 或 1 个-
符号后跟一个或多个数字x\^2
- x 字符、^ 字符、2 个字符\s*
- 可选空间[+-]
- + 字符或 - 字符?
- 该组的 0 或 1 个。二次公式可能没有第一部分。删除它?
以使其不是可选的
(\d+)x
- 一个或多个数字后跟 x 字符(例如:2x)\s*
- 可选空间([+-]\s*\d+)
- [+-] - + 字符或 - 字符
\s*
- 可选空间\d+
- 一位或多位数字(例如:3)
推荐阅读
- python - Python Matplotlib:如何在箱线图上指定“中线”“四分位线”和“最小/最大”线的位置?
- java - Java 11 在运行时添加依赖 jar 的问题
- swift - 当我构建和运行 uicollection 视图时,我的图片不会显示
- python - Discord 使用命令无法正常工作
- excel - 需要修改这个基于另一个单元格内容显示数据的公式
- assembly - 什么是 AArch64 中的代码重定位,它们与动态链接的重定位相同吗?
- matlab - 用于 lsqnonlin 和外部函数的 matlab RANSAC
- ios - 使用其父 xib 的 UICollectionViewCell 子类
- javascript - 使用 reactstrap 从 react-hook-form 访问错误
- matplotlib - seaborn lineplot:图例中缺少标记符号