don*_*too 0 .net c# regex replace
这是输入字符串"23x + y-34 x + y + 21x - 3y2-3x-y + 2".我希望用空格包围每个'+'和' - '字符,但前提是它们不是从左侧或右侧都已完全消失.所以我的输入字符串看起来像"23x + y - 34 x + y + 21x - 3y2 - 3x - y + 2".我写了这个代码来完成这项工作:
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; });
Run Code Online (Sandbox Code Playgroud)
解释:reg1 //匹配'+'后跟任何不是''(空格)的字符或' - '相同的字符
reg2 //同样的事情,我匹配'+'或' - '不在前面''(空白)
委托1和2只在m.Value之前和之后插入""(匹配值)
问题是,有没有办法只创建一个正则表达式和一个代表?即一步完成这项工作?我是正则表达式的新手,我想学习有效的方法.
我不认为这里需要外观或代表.只需更换
\s*([-+])\s*
Run Code Online (Sandbox Code Playgroud)
同
" $1 "
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |