[英]Split string and keep separator as new result item
具有像11+2-33
这样的字符串,我需要将其拆分为11,+,2,-,33
这产生了我11 +,2-,33 Regex.Split(input, @"(?<=[+,-])")
所以我需要在每个结果项上再次应用它,还有更好的方法吗?
正如您所说的那样,您既需要先行又要向前看:
var matches = Regex.Split("11+2-33", "(?<=[+-])|(?=[+-])");
Console.WriteLine(string.Join(",", matches));
11,+,2,-,33
您可以使用与数字或运算符匹配的正则表达式。 例:
string expression = "11+2-33";
string[] parts =
Regex.Matches(expression, @"\d+|[+-]").Cast<Match>().Select(m => m.Value).ToArray();
foreach (string s in parts) Console.WriteLine(s);
输出:
11
+
2
-
33
我不是正则表达式专家,因此使用正则表达式,匹配项等可能有一个聪明的方法,但是我要怎么做才能添加定界符:
string s = "11+2-33";
s = s.Replace("+","|+|");
s = s.Replace("-","|-|");
string[] parts = s.Split('|');
您可以从那里进行重构,但这是总体思路。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.