我要替换一个文本中所有 格式为**内容** 的部分
每替换一个,要在“内容”前面加一个唯一编号,变成***编号 内容*
但“内容”可能是重复的
如果找出“内容”,用string.replace替换,会出现一下被替换掉好多个情况,编号就不对了
有什么好办法呢
每替换一个,要在“内容”前面加一个唯一编号,变成***编号 内容*
但“内容”可能是重复的
如果找出“内容”,用string.replace替换,会出现一下被替换掉好多个情况,编号就不对了
有什么好办法呢
string str = "**内容** **内容** **内容** **内容** v **内容** ";
str = Regex.Replace(str, @"(?<=\*\*)[^\*\s]+(?=\*\*)", e => (i++).ToString() + e.Value);
Console.WriteLine(str);
这样?
{
string src = "Person : 帅哥; Person : 美女; Person : 脑残";
Console.WriteLine(src);
MatchEvaluator evaluator = new System.Text.RegularExpressions.MatchEvaluator(OnEachMatch);
string dst = Regex.Replace(src, @"Person", evaluator);
Console.WriteLine(dst);
}
static int id = 0;
static string OnEachMatch(Match m)
{
id++;
return id.ToString()+ " " + m.Value;
}
1 Person : 帅哥; 2 Person : 美女; 3 Person : 脑残
Press any key to continue . . .
int i = 1;
string str = "猪内容飞机 坦克内容大炮 火车内容地球 地内容欧赔 v 欧盟内容欧姆 "; str = Regex.Replace(str, @"(内容)", e => (i++).ToString() + e.Value);
Console.WriteLine(str);顶二楼
楼主的 * 是通配符吧