在 C# 中替换模式值
Replace pattern values in c#
我有字符串 "Test uid=1 Test2 uid=2 Test3 uid=3"
我写了正则表达式来获取所有 uid。
这给了我 uid 列表 {1,2,3}
对于这个值,我有一些差异值
{1 = 2015, 2=2016, 3=3014}
我尝试使用 Regex.replace(str, regexPattern, "")
因为它用单个值替换所有正则表达式匹配项。
现在我想用新值替换这个旧值。
代码
string str = "Test uid=1 Test2 uid=2 Test3 uid=3"
var uiList = regex.Matches(str);
我正在考虑 MatchCollection。
您可以使用Regex.Replace accepting MatchEvaluator - Regex.Replace Method (String, String, MatchEvaluator)
的版本
示例方法(不检查输入数据):
string input = "Test uid=1 Test2 uid=2 Test3 uid=3";
var replacements = new Dictionary<string,string> {
{ "1", "2015" },
{ "2", "2016" },
{ "3", "3014" }
};
string output = Regex.Replace(input, @"(?<=uid=)\d+", m => replacements[m.Value]);
我有字符串 "Test uid=1 Test2 uid=2 Test3 uid=3"
我写了正则表达式来获取所有 uid。
这给了我 uid 列表 {1,2,3}
对于这个值,我有一些差异值 {1 = 2015, 2=2016, 3=3014}
我尝试使用 Regex.replace(str, regexPattern, "")
因为它用单个值替换所有正则表达式匹配项。
现在我想用新值替换这个旧值。
代码
string str = "Test uid=1 Test2 uid=2 Test3 uid=3"
var uiList = regex.Matches(str);
我正在考虑 MatchCollection。
您可以使用Regex.Replace accepting MatchEvaluator - Regex.Replace Method (String, String, MatchEvaluator)
的版本示例方法(不检查输入数据):
string input = "Test uid=1 Test2 uid=2 Test3 uid=3";
var replacements = new Dictionary<string,string> {
{ "1", "2015" },
{ "2", "2016" },
{ "3", "3014" }
};
string output = Regex.Replace(input, @"(?<=uid=)\d+", m => replacements[m.Value]);