Hier ist meine Funktion mit Oscar Jaras Funktion als Modell.
public static string getBetween(string strSource, string strStart, string strEnd) {
const int kNotFound = -1;
var startIdx = strSource.IndexOf(strStart);
if (startIdx != kNotFound) {
startIdx += strStart.Length;
var endIdx = strSource.IndexOf(strEnd, startIdx);
if (endIdx > startIdx) {
return strSource.Substring(startIdx, endIdx - startIdx);
}
}
return String.Empty;
}
Diese Version führt höchstens zwei Suchvorgänge im Text durch. Es vermeidet eine Ausnahme, die von Oskars Version ausgelöst wird, wenn nach einer Endzeichenfolge gesucht wird, die nur vor der Startzeichenfolge auftritt, d. H.getBetween(text, "my", "and");
. H.
Die Verwendung ist die gleiche:
string text = "This is an example string and my data is here";
string data = getBetween(text, "my", "is");
IndexOf
undSubstring
.