gpt4 book ai didi

java - 否定复杂的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:35 24 4
gpt4 key购买 nike

我已经尝试了标准的前瞻方法来否定我用于方程求解器的正则表达式。问题是它不起作用。

给定示例方程:1+2x5+3x4

我想隔离乘法的两个实例。我希望在一个数组中使用 {1+, +},在另一个数组中使用 {2x5, 3x4}。

我使用 split("\\d+x\\d") 来获取第一个数组,但无法成功否定该正则表达式来获取另一个数组。感谢您的宝贵时间,任何帮助表示感谢!

最佳答案

我想不出可以产生乘法项的单行代码,但使用匹配器提取它们相当简单。

String input = "1+2x5+3x4";
// you already found a way to identify the non multiplication terms
String[] first = input.split("\\d+x\\d+");

String pattern = "(\\d+x\\d+)";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
List<String> second = new ArrayList<>();
while (m.find()) {
second.add(m.group(1));
System.out.println(m.group(1));
}

请注意,通常您应该使用解析器来处理复杂的算术表达式。该解析器可能在内部大量使用正则表达式,但是一旦获得嵌套括号,单独使用正则表达式将无法正常工作。

输出:

2x5
3x4

关于java - 否定复杂的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com