是否有可能进行加在一个正则表达式? [英] Is it Possible to Perform Addition in a Regex?

查看:149
本文介绍了是否有可能进行加在一个正则表达式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设$ 2填充整数占位符,是有可能通过加1是:

  VAR strReplace = @$ 2;
Regex.Replace(strInput,@(()*)。?,strReplace);


解决方案

您可以使用 Regex.Replace 的回调版采​​用了 MatchEvaluator ,见例子:

下面是一个例子( ideone ):

 使用系统;
使用System.Text.RegularEx pressions;类节目
{
    静态字符串AddOne(字符串s)
    {
        返回Regex.Replace(S,@\\ D +,(比赛)=>
        {
            长NUM = 0;
            long.TryParse(match.ToString(),出NUM);
            回报(NUM + 1)的ToString();
        });
    }    静态无效的主要()
    {
        Console.WriteLine(AddOne(你好123!));
        Console.WriteLine(AddOne(掰掰11));
    }
}

输出:

  124你好!
掰掰12

Assuming the placeholder $2 is populated with an integer, is it possible to increment it by 1?:

var strReplace = @"$2";
Regex.Replace(strInput, @"((.)*?)", strReplace);

解决方案

You can use a callback version of Regex.Replace with a MatchEvaluator, see examples at:

Here's an example (ideone):

using System;
using System.Text.RegularExpressions;

class Program
{
    static string AddOne(string s)
    {
        return Regex.Replace(s, @"\d+", (match) =>
        {
            long num = 0;
            long.TryParse(match.ToString(), out num);
            return (num + 1).ToString();
        });
    }

    static void Main()
    {
        Console.WriteLine(AddOne("hello 123!"));
        Console.WriteLine(AddOne("bai bai 11"));
    }
}

Output:

hello 124!
bai bai 12

这篇关于是否有可能进行加在一个正则表达式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆