Вы можете попробовать несколько вариантов.Если у вас есть совокупность разделителей, вы можете отсортировать их в правильном порядке перед разделением:
using System.Linq;
...
var result = input.Split(
separators.OrderByDescending(item => item.Length), // longest first
StringSplitOptions.RemoveEmptyEntries);
Вы можете попробовать организовать все (включая возможные) разделители в один pattern , например,
[><=]+
здесь мы разделены на самую длинную последовательность >
, <
и =
var result = Regex.Split(input, "[><=]+");
Демо:
using System.Text.RegularExpressions;
...
string[] tests = new string[] {
"name>123",
"name<4",
"name=78",
"name==other",
"name===other",
"name<>78",
"name<<=4",
"name=>name + 455",
"name>=456",
"a_b_c=d_e_f",
};
string report = string.Join(Environment.NewLine, tests
.Select(test => string.Join("; ", Regex.Split(test, "[><=]+"))));
Console.Write(report);
Итог:
name; 123
name; 4
name; 78
name; other
name; other
name; 78
name; 4
name; name + 455
name; 456
a_b_c; d_e_f