Dies ist ein ziemlich häufiges Problem, daher sollten Sie die String-Klasse mit einer flexiblen "Between" -Methode erweitern. Zuerst du wirst eine Erweiterungsklasse definieren:
public static class StringExtensions
{
/// <summary>
/// Returnes a substring located between a leading substring (head) and following substring(tail).
/// Return null if head or tail are not part of this string.
/// </summary>
/// <param name="mainString"></param>
/// <param name="head">leading substring</param>
/// <param name="tail">following substring</param>
/// <returns>ubstring located between head and tail</returns>
public static String Between(this string mainString, string head, string tail)
{
int HeadPosition;
int TailPosition;
int ResultPosition;
int ResultLenght;
//test if mainstring contains head and tail
if (!mainString.Contains(head) && mainString.Contains(tail))
{
return null;
}
HeadPosition = mainString.IndexOf(head);
TailPosition = mainString.IndexOf(tail);
ResultPosition = HeadPosition + head.Length;
ResultLenght = TailPosition - ResultPosition;
return mainString.Substring(ResultPosition, ResultLenght);
}
}
Dann alles, was Sie tun müssen, ist die neue Methode auf eine beliebige Zeichenfolge aufrufen.
var logTime = "LastWrite Time Thu Dec 9 05:12:42 2010 (UTC)";
logTime = logTime.Between("Time","(UTC)").Trim();
Bitte beachten Sie, dass „Zwischen“ wird nur dann zugänglich, wenn Sie den Namespace verwenden, die Sie definiert StringExtensions in.
Ist das Format festgelegt mit nur das Datum/Zeit unterschiedlich? In diesem Fall ist es einfach, den Text an der richtigen Stelle zu greifen. Sonst würden einige weitere Beispiele helfen. –