将Regex.Replace转换为条件替换

时间:2017-11-06 10:28:13

标签: c# regex pattern-matching str-replace conditional-regex

我目前正在使用c#/ Asp.net中的一段代码。

它使用如下结构的正则表达式替换函数:

return regex.Replace(pattern, match =>
{
    // do something
    return something;
});

An example pattern might be "This is a {sample} bit of text where the items in the brackets are {replaced}"

这种替换语法形式似乎全部或全无 - 它获取所有匹配并将用某些内容替换所有匹配。

以下是Mark Gravell发布的完整代码:

How can I create a more user-friendly string.format syntax?

但是,我需要能够有条件地替换 - 获取匹配,迭代它们,并决定是否替换。

示例

给定输入字符串:

“你今年{年龄},你的名字是{firstName},你的名字是{lastName}。

用法

string s = Format(“你是{age}岁,你的名字是{firstName},你的名字是{lastName}。”,         new {age = 18,firstName =“Foo”});

当前输出

“你今年18岁,你的名字是Foo,你的名字是。”

所需的输出

“你今年18岁,你的名字是Foo,你的名字是{lastName}。”

任何建议表示赞赏。

0 个答案:

没有答案