|
/*
Used to determine Browser Capabilities by the Browsers UserAgent string.
Copyright (C) 2002-Present Owen Brady (Ocean at xvision.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
using System;
using System.Text.RegularExpressions;
namespace Ocean.Web.HttpCapabilities
{
/// <summary>
/// this class main purpose is just to allow me to see what went into making a regular expression
/// so to make it easier to debug said expression.
/// </summary>
public class CaseFilter
{
/// <summary>
/// This is the regular expression pattern.
/// </summary>
private string Pattern;
/// <summary>
/// This is the raw string expression which is being processed.
/// </summary>
private string Input;
/// <summary>
/// This is the resulting regular expresion Match object, when the given pattern & input are used.
/// </summary>
private System.Text.RegularExpressions.Match regxmatch;
/// <summary>
///
/// </summary>
/// <param name="pattern"></param>
/// <param name="input"></param>
public CaseFilter(string pattern, string input)
{
System.Diagnostics.Trace.WriteLine(String.Format("Pattern:{0}\tInput:{1}",pattern,input));
Pattern= pattern;
Input = input;
regxmatch = System.Text.RegularExpressions.Regex.Match(Input,Pattern);
}
/// <summary>
/// Used to take a formated text template and process it though the regular expression
/// matches to replace the scripted items with the values in the regular expession matches.
/// </summary>
/// <param name="template">Formated text used to return the desired result</param>
/// <returns>Converted template with the values from the regular expression replacing the template varables</returns>
public string Result(string template)
{
if (this.Success==true)
{
return regxmatch.Result(template);
}
return string.Empty;
}
/// <summary>
/// Returns weather the Regular expression found a match or not.
/// </summary>
public bool Success
{
get
{
return regxmatch.Success;
}
}
/// <summary>
/// The number of groups matched.
/// </summary>
public int CountGroups
{
get
{
return regxmatch.Groups.Count;
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chris Maunder is the co-founder of
CodeProject and
ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.
In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project,
CodeProject.AI.
In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.