java - 使用正则表达式从操作数中拆分并提取运算符

标签 java regex split extraction-operator

我有一个包含运算符和操作数的方程。 我想将其拆分并在一个字符串数组中提取运算符和操作数,如下所示:

4+3 -2 + 1* 5 -2

4,+,-,2,+,1,*,5,-,2

有人对此有建议的正则表达式模式吗?

最佳答案

这是一种使用正则表达式来完成此操作的方法,没有使用过这些,因此可能可以改进。

Pattern pattern = Pattern.compile("[0-9]+|(\\+|-|\\*)");
Matcher matcher = pattern.matcher("4+3 -2 + 1* 5 -2");
List<String> parts = new ArrayList<>();
while (matcher.find()) {
    parts.add(matcher.group());
}
String[] array = parts.toArray(new String[parts.size()]);
System.out.println(Arrays.toString(array));

输出:

[4, +, 3, -, 2, +, 1, *, 5, -, 2]

关于java - 使用正则表达式从操作数中拆分并提取运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29267275/

相关文章:

Java 将文本文件读取到流中并将其拆分

java - Mule 表达语言和运算符

java - SonarQube 运行 main : java. lang.NoSuchMethodError : ch. qos.logback.classic.LoggerContext.initCollisionMaps()V 时出错

java - 用于根据检测到的特征确定对象中心的成本/映射函数

php - 正则表达式的最大长度是多少?

javascript - 如果指定了多个分隔符,javascript 的 split 函数如何通过分隔符工作

Python和翻转姓氏,名字的顺序

java - Sonar 违规鱿鱼 :S1612

Python 正则表达式 : Group Backref

c# - 文本框中仅允许字母数字