正则表达式 - 10美元多倍1美元

时间:2018-02-23 05:36:39

标签: regex

我想替换这个结果:

(something=)([\-\d\.]*)

用这个:

nowitis=($2*10)

但不是得到

nowitis=(80)

我得到了

nowitis=(8*10)

如何解决?

2 个答案:

答案 0 :(得分:0)

在sed中,例如:

public class TaskViewComponent : ViewComponent
{

    public async Task<IViewComponentResult> InvokeAsync(string Id)
    {
        var data = await Task.Run(() => Id.Trim());
        return View("Default", data);
    }
}

乘以10只是在数字上加零。 Sed没有计算结果。

但是,我所知道的所有正则表达式实现都可以让它更简单:

echo "something=123" | sed -r 's/(something=)([\-\d\.]*)/\1\2*10)/'
something=123*10)
echo "something=123" | sed -r 's/(something=)([\-\d\.]*)/\1\20/'
something=1230

在组[ - \ d。]中, - 符号是前导符号,因此它不能像A-Z那样成为范围的一部分。嗯,它可能,它可能意味着从0到某事,但它没有。作为第一个或最后一个角色,它不需要掩码。

同样地,每个包含点的组(如果点被解释为小丑符号)可以简化为那个jokersign。因此,你不需要这样的小丑。所以你也不必掩饰它。

答案 1 :(得分:0)

输入字符串可以是:

something=10.2
something=-3.15

所以可以有负数和浮点数。

我有一个PHPStorm IDE,我正在使用regex的find&amp; replace函数 所以很好,但没有乘法。 所以我想我可以在几次运行中做到这一点。 例如,在下一次运行中,我会找到我的结果,然后将点移动1。 我阅读了PCRE文档,但未找到乘法选项。

更容易就是在PHP中写一个脚本来做正确的事。 但我认为这可以更轻松。