CodePaste Logo
New Snippet New Snippet Recent Snippets Recent Snippets My Snippets My Snippets Web Code Search Snippets Search
Sign inor Register
Language: C#

ExtractString

301 Views
Copy Code Show/Hide Line Numbers
/// <summary>
/// Extracts a string from between a pair of delimiters. Only the first 
/// instance is found.
/// </summary>
/// <param name="source">Input String to work on</param>
/// <param name="StartDelim">Beginning delimiter</param>
/// <param name="endDelim">ending delimiter</param>
/// <param name="CaseInsensitive">Determines whether the search for delimiters is case sensitive</param>
/// <returns>Extracted string or ""</returns>
public static string ExtractString(string source, string beginDelim,
                                   string endDelim, bool caseSensitive,
                                   bool allowMissingEndDelimiter)
{
    int at1, at2;
 
    if (string.IsNullOrEmpty(source))
        return string.Empty;
 
    if (caseSensitive)
    {
        at1 = source.IndexOf(beginDelim);
        if (at1 == -1)
            return string.Empty;
 
        at2 = source.IndexOf(endDelim, at1 + beginDelim.Length);
    }
    else
    {
        //string Lower = source.ToLower();
        at1 = source.IndexOf(beginDelim, 0, source.Length, StringComparison.OrdinalIgnoreCase);
        if (at1 == -1)
            return string.Empty;
 
        at2 = source.IndexOf(endDelim, at1 + beginDelim.Length, StringComparison.OrdinalIgnoreCase);
    }
 
    if (allowMissingEndDelimiter && at2 == -1)
        return source.Substring(at1 + beginDelim.Length);
 
    if (at1 > -1 && at2 > 1)
        return source.Substring(at1 + beginDelim.Length, at2 - at1 - beginDelim.Length);
 
    return string.Empty;
}
 
/// <summary>
/// Extracts a string from between a pair of delimiters. Only the first
/// instance is found.
/// <seealso>Class wwUtils</seealso>
/// </summary>
/// <param name="source">
/// Input String to work on
/// </param>
/// <param name="beginDelim"></param>
/// <param name="endDelim">
/// ending delimiter
/// </param>
/// <param name="CaseInSensitive"></param>
/// <returns>String</returns>
public static string ExtractString(string source, string beginDelim, string endDelim, bool caseSensitive)
{
    return ExtractString(source, beginDelim, endDelim, caseSensitive, false);
}
 
/// <summary>
/// Extracts a string from between a pair of delimiters. Only the first 
/// instance is found. Search is case insensitive.
/// </summary>
/// <param name="source">
/// Input String to work on
/// </param>
/// <param name="StartDelim">
/// Beginning delimiter
/// </param>
/// <param name="endDelim">
/// ending delimiter
/// </param>
/// <returns>Extracted string or string.Empty</returns>
public static string ExtractString(string source, string beginDelim, string endDelim)
{
    return ExtractString(source, beginDelim, endDelim, false, false);
}
 
by Rick Strahl
  July 23, 2010 @ 5:20pm
Tags:

Add a comment


Report Abuse
brought to you by:
West Wind Techologies



If you find this site useful and use it frequently please consider making a donation to support this free service.
Donate