gpt4 book ai didi

java - 正则表达式如何分隔多项式的项

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

我有一个字符串5x^3-2x^2+5x我想要一个正则表达式,将该字符串分割为5x^3,-2x^2,5x

我尝试了“(-)|(\\+)”,但这没有用。因为它没有考虑负幂项。

最佳答案

您可以使用此正则表达式分割字符串,

\+|(?=-)

它的工作方式是,它会分割使用 + 字符的字符串,但如果有 - 则使用 - 进行分割,但不会使用 -,因为这是向前看的。

看看这个 Java 代码,

String s = "5x^3-2x^2+5x";
System.out.println(Arrays.toString(s.split("\\+|(?=-)")));

下面给出了您的预期输出,

[5x^3, -2x^2, 5x]

编辑:

虽然OP在他的帖子中的评论中说,不会有负权力,但万一你也有负权力,你可以使用这个正则表达式来处理负权力,

\+|(?<!\^)(?=-)

检查更新后的 Java 代码,

List<String> list = Arrays.asList("5x^3-2x^2+5x", "5x^3-2x^-2+5x");
for (String s : list) {
System.out.println(s + " --> " +Arrays.toString(s.split("\\+|(?<!\\^)(?=-)")));
}

新输出,

5x^3-2x^2+5x --> [5x^3, -2x^2, 5x]
5x^3-2x^-2+5x --> [5x^3, -2x^-2, 5x]

关于java - 正则表达式如何分隔多项式的项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58327703/

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