【发布时间】:2020-04-02 14:48:30
【问题描述】:
我有一个字符串,例如 "number1number4||number2=number4" 并且运算符列表为 -
var operators = new List<string> {"=", "!", "<", ">", ">=", "<=", "!=","||","&&"};
因此,期望是在字符串中的每个运算符前后引入一个空格。
"number1 number4 || number2 = number4"
我尝试了以下代码,但它不起作用,例如,=
public static string AddSpaceBeforeAndAfterOperator(string expression) {
var operators = new List<string> {"=", "!", "<", ">", ">=", "<=", "!=", "||", "&&"};
foreach (var op in operators) {
var index = expression.IndexOf(op, StringComparison.Ordinal);
if (index >= 0) {
if (expression.Substring(index - 1) != " ") {
expression = expression.Insert(index-1, " ");
}
expression = expression.Insert(index + op.Length + 1, " ");
}
}
return expression;
}
注意:操作员列表是随机的。
任何帮助将不胜感激!
【问题讨论】:
-
你可以通过 "(" + string.Join("|", operator.Select(Regex.Escape)) + ")" 构造一个正则表达式,然后做一个 regex.Replace