C# 我能一步写出这个正则表达式吗?
这是输入字符串“23x+y-34X+y+21x-3y2-3x-y+2”。我想用空格包围每个“+”和“-”字符,但前提是它们没有从左侧或右侧完全准备好。所以我的输入字符串看起来像“23x+y-34x+y+21x-3y2-3x-y+2”。我编写了以下代码来完成这项工作:C# 我能一步写出这个正则表达式吗?,c#,.net,regex,replace,C#,.net,Regex,Replace,这是输入字符串“23x+y-34X+y+21x-3y2-3x-y+2”。我想用空格包围每个“+”和“-”字符,但前提是它们没有从左侧或右侧完全准备好。所以我的输入字符串看起来像“23x+y-34x+y+21x-3y2-3x-y+2”。我编写了以下代码来完成这项工作: Regex reg1 = new Regex(@"\+(?! )|\-(?! )"); input = reg1.Replace(input, delegate(Match m) { return m.Value +
Regex reg1 = new Regex(@"\+(?! )|\-(?! )");
input = reg1.Replace(input, delegate(Match m) { return m.Value + " "; });
Regex reg2 = new Regex(@"(?<! )\+|(?<! )\-");
input = reg2.Replace(input, delegate(Match m) { return " " + m.Value; });
Regex reg1=新的正则表达式(@“\+(?!)\-(?!)”;
input=reg1.Replace(输入,委托(匹配m){返回m.Value+“”;});
Regex reg2=new Regex(@“(?我看不出这里需要lookarounds或委托。只需替换
\s*([-+])\s*
与
(见。)我会试试看
Regex.Replace(input, @"\s*[+-]\s*", m => " " + m.ToString().Trim() + " ");
thx,我是正则表达式的新手,不知道simpleLambda表达式可能很有趣,但这可以单独用正则表达式来实现,正如@KennyTM所演示的那样。
Regex.Replace(input, @"\s*[+-]\s*", m => " " + m.ToString().Trim() + " ");