【发布时间】:2016-07-26 02:59:21
【问题描述】:
所以,我做了很多研究,查看了大量的正则表达式文档、指南和正则表达式生成器,但我没有找到可以告诉我如何做到这一点(甚至 StackOverflow 弹出框中的链接当我在这个问题的“标题”字段中输入“正则表达式”时出现)。
所以基本上,我正在编写一个数学程序(用 Ruby 编写)来解决一个非常特定类型的数学问题。将有两个输入字符串(通过gets.chomp),一个字符串将采用
的形式2x^3+4x^2+5x-42
现在,指数(^3 和 ^2)将保持不变,并且这些可以被正则表达式忽略,任何加法和减法符号以及任何“x”字符都可以。
所以本质上,我需要弄清楚如何编写一个正则表达式,它可以对字符串中的任何数字字符进行排序,除非它们前面有一个“^”(表示指数),并将它们推送到一个数组中. (数组中的数字串后面会解析成数值)
因此,例如,理想的正则表达式将采用类似
8x^3-4x^2+3x-17
并返回一个包含方程系数的数组
["8", "-4", "3", "-17"]
在它们出现的地方保留负号/减号是很重要的。另一个例子:
需要
-6x^3+7x^2-5x+9
然后返回
["-6", "7", "-5", "9"]
任何想法我可以如何去做?应用两个单独的正则表达式可能更容易吗? Ruby 只回答,请。
【问题讨论】:
-
主要问题是当coef为1(或0)并且没有写入时。
标签: arrays ruby regex sorting polynomial-math