Hola,
Estas son las sobrecargas de Split:
Pasando como parámetro un Char[]
Split(Char[])
Split(Char[], Int32)
Split(Char[], StringSplitOptions)
Split(Char[], Int32, StringSplitOptions)
Pasando como parámetro un String[]
Split(String[], StringSplitOptions)
Split(String[], Int32, StringSplitOptions)
Entonces, si lo que quieres es hacer split segun un string, siempre tendrás que pasar un string[] aunque sea con un solo item, entonces harías algo asi:
//la cadena a separar
string source = "Hola·$%&%Como·$%&%Andas";
//creo un array de string con un elemento
string[] stringSeparators
= new string[] {"·$%&%"};
//ejecutamos usando StringSplitOptions.RemoveEmptyEntries, el cual nos eliminará
//partes que estén sin texto. Si no lo quieres puedes usar StringSplitOptions.None
string[] partes = source.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
//te mostrará Hola
MessageBox.Show(partes[0]);
Lo de las expresiones regular es similar, pero en vez de pasarle un string o un string[], tienes que pasarle un string con una Expresion regular, sino no funciona.
Un saludo!