我使用以下RegEx基本上过滤掉任何文本,并接受数字+运算符。
content: "[whatever icon here]";
所以它抓住1 + 1,1-1,2 * 2,10 / 2等等。因为我写的解决方案并不只是评估行上的表达式,但它总计所有计算的行总的来说,我需要允许用户放置单独的正/负数,这将影响总数(500,-500,+ 500(傻瓜打样))。
Here is the test I've been running.我需要能够在测试用例中匹配+500,-500和500,同时仍然排除任何文本。 RegEx非常糟糕,所以非常感谢任何帮助!
答案 0 :(得分:1)
如果我理解你的目的,你可以将中间的+
替换为*
:
([-+]?[0-9]*\.?[0-9]+[\/\+\-\*])*([-+]?[0-9]*\.?[0-9]+)
答案 1 :(得分:1)
你的正则表达式要求两个小组至少出现一次。您可以将第一个组设为可选,方法是将+
更改为*
,只需要匹配第二个组,并使其缩短一点。
(?:[-+]?\d*\.?\d+[\/*+-])*(?:[+-]?\d*\.?\d+)