C#: String zwischen zwei anderen Strings extrahieren
Wer in C# aus einem String einen String extrahieren muss der zwischen einem Definierten Anfang und Ende liegt, kann das wie folgt machen:
/**
* @brief Get String betwenn a start and end tack
* @param sHaystack: String to search in
* @param sBegin: Start tag of string to search for
* @param sEnd: End tag of string to search for
* @return String Found between sBegin and sEnd or Empty if not found
*/
public static String GetStringBetween(String sHaystack, String sBegin, String sEnd)
{
String sFound = "";
int iPosBegin = sHaystack.IndexOf(sBegin);
if(iPosBegin >= 0)
{
iPosBegin += sBegin.Length;
int iPosEnd = sHaystack.IndexOf(sEnd, iPosBegin);
if(iPosEnd > 0)
{
sFound = sHaystack.Substring(iPosBegin, iPosEnd - iPosBegin);
}
}
return sFound;
}
Beispiel Aufruf:
String sHaystack = " 'String to extract' ";
Console.WriteLine(CUtil.GetStringBetween(sHaystack, "'", "'"));
Console.WriteLine(CUtil.GetStringBetween(sHaystack, "'", "extract'"));
Die Ausgabe wäre:
String to extract
String to