首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将刺拆分为正则表达式为真的组

如何将刺拆分为正则表达式为真的组
EN

Stack Overflow用户
提问于 2021-08-05 17:20:21
回答 3查看 46关注 0票数 0

我得到一个方程(多项式)作为字符串,我试图用一个正则表达式将方程分解成组,其中表达式是真的。

到目前为止我所拥有的是:

代码语言:javascript
运行
复制
>>> str = "13x^14-12x^3+x^3-11"
>>> puts str.split(/[+-]?\d*x?\^?\d*/)
["13x^14-12x^3+x^3-11"]

我想得到的是:["13x^14","-12x^3","+x^3","-11"]

我的表达式是如何工作的

  • +-?:+或-可以存在0或1次
  • \d*:数字0-9可以显示为0到无限次。
  • x :X可以出现0或1次
  • ^?:字符^可以出现0或1次。
  • \d*:数字0-9可以显示为0到无限次。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-05 18:40:50

而不是使用拆分,您可以匹配所有的事件,并省略锚^$

当所有匹配以数字结尾时,可以更改最后一部分以匹配至少1位或更多位数\d+,以防止空匹配,因为所有部分都是可选的。

代码语言:javascript
运行
复制
str = '13x^14-12x^3+x^3-11'

str.scan(/[+-]?\d*x?\^?\d+/) do |match|
    puts match.to_s
end

输出

代码语言:javascript
运行
复制
13x^14
-12x^3
+x^3
-11
票数 1
EN

Stack Overflow用户

发布于 2021-08-05 18:36:07

如果使用正则表达式并将分隔符放入组内,拆分也将捕获分隔符。来源

代码语言:javascript
运行
复制
str.split(/([+-]?\d*x?\^?\d*)/) - [""]
票数 0
EN

Stack Overflow用户

发布于 2021-08-05 20:15:33

如果使用gsub将+和-符号替换为"|+“和”AC.26-“,则可以使用split("|")获取该信息。您不需要正则表达式来拆分字符串。

代码语言:javascript
运行
复制
str = "13x^14-12x^3+x^3-11"
str.gsub(/[+]/,"|").gsub(/[-]/,"|-").split("|")
["13x^14","-12x^3","x^3","-11"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68670977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档