gpt4 book ai didi

java - 我需要一个正则表达式命令来隔离所有不与插入符号 (^) 相邻的数字

转载 作者:行者123 更新时间:2023-11-29 04:54:25 24 4
gpt4 key购买 nike

我在计算 Regex 命令时遇到了很多麻烦,而且似乎无法找到适合我想要的内容的正确组合

例子:

输入:1x^3+5x^2+6x+2

输出:1 5 6 2

我需要隔离这些值,因为它们是我的多项式的系数。输入是一个字符串,所以我认为最好的方法是使用带有自定义 Regex 命令的 .split() 函数。

最佳答案

你可以使用这个正则表达式:

(?<!\^)\d+(?!\^)

这使用否定的前瞻和后视来删除 ^ 旁边的字符。

既然要提取系数,它会找到一个或多个数字。根据需要修改中间部分。

在Java中可以这样使用,例如:

Matcher m = Pattern.compile("(?<!\\^)\\d+(?!\\^)").matcher("1x^3+5x^2+6x+2");
while (m.find()) {
System.out.println("Coefficient: " + m.group());
}

编辑:

如果你还想检测负系数,你可以检查一个可选的 - 在数字之前:

(?<!\^)-?\d+(?!\^)

请记住,当您 try catch 更复杂的模式时,正则表达式会变得不那么适合,因为您可能会迷失在许多需要覆盖的情况下。

关于java - 我需要一个正则表达式命令来隔离所有不与插入符号 (^) 相邻的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34302991/

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