【问题标题】:Javascript String Splitting with Regular Expressions使用正则表达式的 Javascript 字符串拆分
【发布时间】:2018-08-02 15:25:14
【问题描述】:

我正在尝试使用正则表达式和 split() 方法拆分输入字符串,作为代码战问题的一部分。但是,到目前为止,我还无法创建一个能够正确拆分输入字符串的正则表达式。输入字符串遵循以下格式:

x+y=z

其中 x、y 和 z 可以是任何整数(正数或负数),也可以包含问号。例如:

12?+-756?=1??
-3445--8?756=?32
1+1=?

任务是解决'?'。

到目前为止,我已经将字符串分成了两个字符串;等号的左边和右边。现在,我正在尝试进一步拆分左侧。但是,由于输入字符串可以包含减号运算符和/或负数,这会导致我的程序出现问题。

到目前为止我用过:

x = /[+*-]/;

这适用于正整数的简单加、减或减方案。

如果有人能提供帮助,我将不胜感激。 谢谢。

这里是codewars kata的链接:

https://www.codewars.com/kata/546d15cebed2e10334000ed9/train/javascript

【问题讨论】:

  • 你能指定更多吗?

标签: javascript regex


【解决方案1】:

这样的东西有用吗?

([+-]?[\d?]+)[+-]([+-]?[\d?]+)=([+-]?[\d?]+)

这部分([+-]?[\d?]+) 指定一个可选的正号或负号,然后是数字和问号的组合,然后[+-] 是加号或减号,然后是另一个数字,然后= 是另一个数字。每个数字都被捕获在一个组中,因此您可以在执行正则表达式后访问它。

【讨论】:

  • 感谢您的回复。我将此代码插入我的程序并设法让它工作。我一直在阅读一些关于正则表达式的在线教程,并没有真正理解,但我认为您提供的解决方案帮助我理解了更多。真的很感激。谢谢!
  • 哦,太好了!没问题。我有时使用这个站点regexr.com 来测试正则表达式。如果您还没有去过那里,那么帮助您更熟悉它们可能会很好
  • @sbrass,我在 -1?2?3*45?=5?088 上测试了你的正则表达式 - 不匹配。
  • 哦,对不起!它只检查加法和减法。 ([+-]?[\d?]+)[+-*/]([+-]?[\d?]+)=([+-]?[\d?]+)那个应该加乘除法
猜你喜欢
  • 2011-06-18
  • 1970-01-01
  • 2017-02-23
相关资源
最近更新 更多