拥有11+2-33
之类的字符串我需要将其拆分为11,+,2,-,33
Regex.Split(input, @"(?<=[+,-])")
所以我需要在每个结果项上再次应用它,有更好的方法吗?
答案 0 :(得分:4)
正如你所说的那样,你需要后视和前瞻:
var matches = Regex.Split("11+2-33", "(?<=[+-])|(?=[+-])");
Console.WriteLine(string.Join(",", matches));
11,+,2,-,33
答案 1 :(得分:1)
我不是正则表达式专家,因此可能有一种聪明的方法可以使用正则表达式,匹配等,但我将如何做到这一点是添加分隔符:< / p>
string s = "11+2-33";
s = s.Replace("+","|+|");
s = s.Replace("-","|-|");
string[] parts = s.Split('|');
你可以从那里重构,但这是一般的想法。