Regex reg = new Regex(@"(\d)*"); string test = "123";
MatchEvaluator me=sm=>{string result="";foreach(Capture c in sm.Groups[1].Captures){result+=c.Value;}return result;};Console.WriteLine(reg.Replace(test, me)); 这的确是个方法,不过不能够通过引用直接取出多次捕获值吗?
需求假设: 字符串"123"需要在数字后面添加一个空格 Regex reg = new Regex(@"(\d){1}"); string test = "123"; string result = reg.Replace(test, delegate(Match match) { string value = match.Result("$1"); return value + " "; });
MatchEvaluator 是每找到一次匹配,将匹配替换成委托的返回值。
哪里哪里逍遥大哥严重了。呵呵Regex reg = new Regex(@"(\d)*"); string test = "123"; Console.WriteLine(reg.Replace(test, "$1"));我其实就是想问reg.Replace(test, "$1"))中时,有没有一种正则的语法把$1的全部捕获(即123)一次性取出来,而不用C#的方法去取。 可能是本人上面没阐述清楚,抱歉~
你再次分组不就可以了。改成这样 Regex reg = new Regex(@"((\d)*)"); 实现很容易,但这是你要的结果?帖子描述的很简单,我认为你是在做练习,但这样看不出目的。
Regex reg = new Regex(@"(\d)*");
string test = "123";
MatchEvaluator me=sm=>{string result="";foreach(Capture c in sm.Groups[1].Captures){result+=c.Value;}return result;};Console.WriteLine(reg.Replace(test, me));
这的确是个方法,不过不能够通过引用直接取出多次捕获值吗?
字符串"123"需要在数字后面添加一个空格
Regex reg = new Regex(@"(\d){1}");
string test = "123";
string result = reg.Replace(test, delegate(Match match)
{
string value = match.Result("$1");
return value + " ";
});
MatchEvaluator 是每找到一次匹配,将匹配替换成委托的返回值。
哪里哪里逍遥大哥严重了。呵呵Regex reg = new Regex(@"(\d)*");
string test = "123";
Console.WriteLine(reg.Replace(test, "$1"));我其实就是想问reg.Replace(test, "$1"))中时,有没有一种正则的语法把$1的全部捕获(即123)一次性取出来,而不用C#的方法去取。
可能是本人上面没阐述清楚,抱歉~
Regex reg = new Regex(@"((\d)*)");
实现很容易,但这是你要的结果?帖子描述的很简单,我认为你是在做练习,但这样看不出目的。