我正在尝试使用正则表达式和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
答案 0 :(得分:0)
这样的作品行吗?
([+-]?[\d?]+)[+-]([+-]?[\d?]+)=([+-]?[\d?]+)
这部分([+-]?[\d?]+)
指定一个可选的正号或负号,然后是数字和问号的混合,然后[+-]
是正号或负号,然后是另一个数字,然后是=
数。每个数字都被捕获到一个组中,因此您可以在执行正则表达式后访问它。