gpt4 book ai didi

javascript - 使用正则表达式转换 JS 中的多项式字符串表示形式

转载 作者:行者123 更新时间:2023-11-28 17:51:01 25 4
gpt4 key购买 nike

我有一个包含多项式表示的字符串。下面给出了一些示例:

'1+3x'
'3y+1'
'-2+50x1'
'50x+31x^2-29'
'3.85x^3-2000'
`5x^2+2x+3`

需要注意的几点:

  • 这些术语不包含特定的顺序。
  • 只有一个不确定的小写字母,后面可以跟一个数字。 (例如xx1)
  • 系数可以是任何实数。如果为零,则不会显示该术语。 (例如33x^2+x-10.333x^2+1)

我想将每个术语拆分为不同的数组元素。

'1+3x' // => ['1', '+3x']
'3y+1' // => ['3y', '+1']
'-2+50x1' // => ['-2', '+50x1']
'50x+31x^2-29' // => ['50x', '+31x^2', '-29']
'3.85x^3-2000' // => ['3.85x^3', '-2000']
'5x^2+2x+3' // => ['5x^2', '+2x', '+3']

为了满足上述要求,我使用了 JS 中 String 对象的 match() 方法。

这是我迄今为止尝试过的:polynomial.match(/[a-z0-9.^]+(\+|\-)?/gi);

但我得到的输出与我想要的略有不同。

'1+3x' // => ['1+', '3x']
'3y+1' // => ['3y+', '1']
'-2+50x1' // => ['2+', '50x1']
'50x+31x^2-29' // => ['50x+', '31x^2-', '29']
'3.85x^3-2000' // => ['3.85x^3-', '2000']
'5x^2+2x+3' // => ['5x^2+', '2x+', '3']

我当前的解决方案缺少什么?

最佳答案

您可以将其简化为任何后跟非 +/- 的内容:.[^+-]*

关于javascript - 使用正则表达式转换 JS 中的多项式字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45525837/

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