HomeBlogMagic

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 
Permalink: https://adirmeier.de/Blog/ID_313
Tags: Blog, von am 2020-04-21