public static GetBetween ( this source, string searchToken1, string searchToken2, bool firstOrLastInstance1 = true, bool firstOrLastInstance2 = true ) : string | ||
source | this | |
searchToken1 | string | |
searchToken2 | string | |
firstOrLastInstance1 | bool | |
firstOrLastInstance2 | bool | |
return | string |
public static string GetBetween(this string source, string searchToken1, string searchToken2, bool firstOrLastInstance1 = true, bool firstOrLastInstance2 = true)
{
if(source != null) {
if(searchToken1 != null && searchToken1.Length > 0 && searchToken2 != null && searchToken2.Length > 0) {
int iStart;
if(firstOrLastInstance1) {
iStart = source.IndexOf(searchToken1);
} else {
iStart = source.LastIndexOf(searchToken1);
}
if(iStart >= 0) {
iStart += searchToken1.Length;
int iEnd;
if(firstOrLastInstance2) {
iEnd = source.IndexOf(searchToken2, iStart);
} else {
iEnd = source.LastIndexOf(searchToken2);
}
if(iEnd > iStart) {
return source.Substring(iStart, iEnd - iStart);
} else if(iEnd == iStart) {
return "";
}
}
} else {
Debug.Fail();
}
}
return null;
}