问题
I'm looking for a simple regex find and replace solution were I can just provide a lambda expression for replacing each matches. E.g:
regex.MatchReplace(text, match => "replacement string");
This way I can create my own logic for generating the replacement string which may involve invoking various methods etc. i.e. things you can't do with substitution patterns. Anyone know how I can accomplish this?
回答1:
Regex already has one. For ex,
string input="abc123def";
var output = Regex.Replace(input, @"\d", m=>(m.Value[0]-'0'+ 5).ToString());
Console.WriteLine(output);
OUTPUT: abc678def
回答2:
Please have a look at the following:
https://msdn.microsoft.com/en-GB/library/bb383977.aspx
You can define an extension method for the RegEx class which will allow you to specify an Action<>
as an argument.
来源:https://stackoverflow.com/questions/31326451/replacing-regex-matches-using-lambda-expression