我有字符串“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。
答案 0 :(得分:3)
您可以使用Regex.Replace版本接受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]);