Voici ma fonction en utilisant la fonction d'Oscar Jara comme modèle.
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;
}
Cette version effectue au maximum deux recherches dans le texte. Elle évite une exception levée par la version d'Oscar lors de la recherche d'une chaîne de fin qui n'apparaît qu'avant la chaîne de début, c'est-à-dire, getBetween(text, "my", "and");
.
L'utilisation est la même :
string text = "This is an example string and my data is here";
string data = getBetween(text, "my", "is");