Hardly.StringHelpers.GetBetween C# (CSharp) Method

GetBetween() public static method

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;
        }