正则表达式贪婪积极回头看

时间:2018-08-20 01:03:52

标签: javascript regex

我有一个输入,该输入包含一个计算,后跟其他内容。示例:

tool = script.Parent
handle = tool.Handle
a = false

tool.Equipped:Connect(function()
    if a == false then
        a = true
         game:GetService("UserInputService").InputBegan:Connect(function(P)
            if P.KeyCode ==Enum.KeyCode.P then
                print ("Pressed")
            end
        end)
    end

    tool.Unequipped:Connect(function()
        if a == true then
            a = false 
        end
    end)
end)

我想使用一个返回3 * 5+2jdf344*23sd 的正则表达式;第一个违反计算规则的比赛。

我尝试过:

jdf344*23sd

相反:

/(?<=(( ?[0-9]+ ?[\*\-\/\+\=\%\^])+ ?[0-9]+ ?)).+/

但是这也会在第一次乘法后选择部分。原因是对于+2,正向后看已经成立。

问题是我不知道计算的长度。
编辑:同样,计算可以在数字和运算符之间有空格,但不能在数字之间-如果计算部分以运算符结尾,则它(必须是,但会很好)也应该位于匹配项内

希望您能帮助我, 预先谢谢你。

1 个答案:

答案 0 :(得分:-2)

如果发现只需要计算,请尝试以下操作:

this.userSSN

这是regex101测试:

/([-\/+0-9\s\*+]*)/