基本算术正则表达式不匹配单独的正/负数

时间:2015-11-10 15:54:40

标签: regex

我使用以下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非常糟糕,所以非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

如果我理解你的目的,你可以将中间的+替换为*

([-+]?[0-9]*\.?[0-9]+[\/\+\-\*])*([-+]?[0-9]*\.?[0-9]+)

答案 1 :(得分:1)

你的正则表达式要求两个小组至少出现一次。您可以将第一个组设为可选,方法是将+更改为*,只需要匹配第二个组,并使其缩短一点。

(?:[-+]?\d*\.?\d+[\/*+-])*(?:[+-]?\d*\.?\d+)

See demo at regex101