您好,我有一个像
这样的字符串Some text here -
~XY*901*000000001~MLC*~XY*901*000000005~MLC*~XY*901*0000000010~MLC*
Some text here
我希望它像 -
Some text here
~XY*901*000000001~MLC*~XY*901*000000002~MLC*~XY*901*000000003~MLC*
Some text here
说明:~XY*901*
和~MLC*
之间的所有内容都应从1开始递增。
如何使用Regex Match Evaluator实现它?
答案 0 :(得分:1)
有点lambada。呃,我的意思是lambda。
var input = @"Some text here -
~XY*901*000000001~MLC*~XY*901*000000005~MLC*~XY*901*0000000010~MLC*
More text here";
var reg = new System.Text.RegularExpressions.Regex(@"(~XY\*901\*)[0-9]+(~MLC\*)");
int i = 1;
var result = reg.Replace(input, m => m.Groups[1] + i++.ToString("D9") + m.Groups[2]);
Console.WriteLine(result);
正则表达式通过正则表达式的匹配替换循环。 同时增加整数。
输出:
Some text here -
~XY*901*000000001~MLC*~XY*901*000000002~MLC*~XY*901*000000003~MLC*
More text here