/// <summary>
/// Spaltet einen String an einem Zeichen auf.
/// </summary>
/// <param name="s">Der aufzuspaltende String.</param>
/// <param name="c">Das Trennzeichen.</param>
/// <param name="after"><c>true</c> wenn das Trennzeichen vor den Zeichen ketten stehen soll, andernfalls <c>false</c>.</param>
/// <returns>Die Teilstrings.</returns>
public static string[] Split(this string s, char c, bool after)
{
return Split(s, c, after, StringSplitOptions.None);
}
/// <summary>
/// Spaltet einen String an einem Zeichen auf.
/// </summary>
/// <param name="s">Der aufzuspaltende String.</param>
/// <param name="c">Das Trennzeichen.</param>
/// <param name="after"><c>true</c> wenn das Trennzeichen vor den Zeichen ketten stehen soll, andernfalls <c>false</c>.</param>
/// <param name="o">Weitere Optionen zum aufsplitten</param>
/// <returns>Die Teilstrings.</returns>
public static string[] Split(this string s, char c, bool after, StringSplitOptions o)
{
string t = "";
//Spezielle Zeichen in Regex
if (c == '.' || c == ',' || c == '+' || c == '-' || c == '*' || c == '(' || c == ')'
|| c == '[' || c == ']' || c == '{' || c == '}' || c == '|' || c == '?' || c == '\\')
t = string.Concat(@"\", c);
else if(c == ' ')
t = @"\s"; //Leerzeichen
else
t = c.ToString(); //Sonstiges Zeichen
if (o == StringSplitOptions.None)
if (after)
return Regex.Split(s, string.Concat(@"(?=", t, @")"));
else
return Regex.Split(s, string.Concat(@"(?<=", t, @")"));
else
{
List<string> l = new List<string>();
if (after)
l.AddRange(Regex.Split(s, string.Concat(@"(?=", t, @")")));
else
l.AddRange(Regex.Split(s, string.Concat(@"(?<=", t, @")")));
l.Remove("");//Leere Items entfernen
return l.ToArray();
}
}