using Systeem;
het gebruiken van System.Collections.Generic;
het gebruiken van System.Text;
het gebruiken van System.Text.RegularExpressions;
het gebruiken van System.Web;
het gebruiken van System.Xml;
///
/// Summiere beschrijving voor BadWordFilter
///
openbare klasse BadWordFilter
{
///
/// concretiseert de Privé aannemer en de lijst van regex
///
privé BadWordFilter ()
{
//
// TODO: Voeg hier aannemerslogica toe
//
Patronen = nieuwe List ();
}
///
/// de patronen
///
statische Patronen List;
privé statische m_instance BadWordFilter = verklaart nietig;
openbare statische Instantie BadWordFilter
{
krijg
{
als (ongeldige m_instance ==)
m_instance = CreateBadWordFilter („listofwords.xml“);
terugkeer m_instance;
}
}
///
/// leidt tot alle vereiste patronen en voegt hen aan de lijst toe
///
///
///
beschermde statische BadWordFilter CreateBadWordFilter (badWordFile koord)
{
De filter van BadWordFilter = nieuwe BadWordFilter ();
XmlDocument badWordDoc = nieuwe XmlDocument ();
(badWordFile) badWordDoc.Load;
//Loop door het xmldocument voor elk slecht woord in de lijst
voor (int. i = 0; i < badWordDoc.GetElementsByTagName („woord“). Telling; i++)
{
//Split elk woord in een karakterserie
klusjes [] karakters = badWordDoc.GetElementsByTagName („woord“) [I] .InnerText.ToCharArray ();
//We behoefte een snelle manier om aan een exisiting koord toe te voegen
StringBuilder patternBuilder = nieuwe StringBuilder ();
//The begin van patterm
patternBuilder.Append („(“);
//We gaat daarna door elke brief en voegt het deel van het patroon toe.
//It is dit stadium dat de bovenleer en kleine lettersvariaties produceert
voor (int. j = 0; j < karakters. Lengte; j++)
{
patternBuilder.AppendFormat („[{0}|{1}] [\ \ W] *“, karakters [j] .ToString () .ToLower (), karakters [j] .ToString () .ToUpper ());
}
//End het patroon
patternBuilder.Append („)“);
//Add het nieuwe patroon aan onze lijst.
Patterns.Add (nieuwe Regex (patternBuilder.ToString ()));
}
terugkeer filter;
}
///
/// de functie die het gemanipuleerde koord terugkeert
///
///
///
openbaar koord GetCleanString (ingevoerd koord)
{
voor (int. i = 0; i < Patterns.Count; i++)
{
//In deze instantie vervangen wij eigenlijk elke instantie van om het even welk slecht woord met een gespecificeerd koord.
input = Patronen [I]. Vervang (input, „####“);
}
//return het gemanipuleerde koord
terugkeer input;
}
openbare bool IsCleanString (ingevoerd koord)
{
voor (int. i = 0; i < Patterns.Count; i++)
{
//In deze instantie vervangen wij eigenlijk elke instantie van om het even welk slecht woord met een gespecificeerd koord.
als (Patronen [I] .IsMatch (input))
{
valse terugkeer;
}
}
//return het gemanipuleerde koord
ware terugkeer;
}
}
|