using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Xml;
///
///-zusammenfassende Beschreibung für BadWordFilter
///
allgemeine Kategorie BadWordFilter
{
///
///-privater Erbauer und instantiate die Liste von regex
///
privates BadWordFilter ()
{
//
// TODO: Erbauerlogik hier addieren
//
Muster = neues List ();
}
///
/// die Muster
///
statische List Muster;
privates statisches BadWordFilter m_instance = Null;
allgemeiner statischer BadWordFilter Fall
{
erhalten
{
wenn (m_instance == Null)
m_instance = CreateBadWordFilter („listofwords.xml“);
Rückholm_instance;
}
}
///
/// verursachen alle erforderten Muster und hinzufügen sie der Liste sie
///
///
///
geschütztes statisches BadWordFilter CreateBadWordFilter (Schnur badWordFile)
{
BadWordFilter Filter = neues BadWordFilter ();
XmlDocument badWordDoc = neues XmlDocument ();
badWordDoc.Load (badWordFile);
//Loop durch das xml Dokument für jedes schlechte Wort in der Liste
für (int I = 0; I < badWordDoc.GetElementsByTagName („Wort“). Zählimpuls; i++)
{
//Split jedes Wort in ein Zeichenfeld
[] Buchstaben = badWordDoc.GetElementsByTagName („Wort“) verkohlen [i,], .InnerText.ToCharArray ();
//We-Notwendigkeit eine schnelle Weise der Befestigung zu einer exisiting Schnur
StringBuilder patternBuilder = neues StringBuilder ();
//The-Anfang des patterm
patternBuilder.Append („(");
//We zunächst durchlaufen jeden Buchstaben eden und anfügen das Teil des Musters.
//It ist dieses Stadium, das die oberen und Kleinschreibungveränderungen erzeugt
für (int J = 0; J < Buchstaben. Länge; j++)
{
patternBuilder.AppendFormat („[{0}|{1}] [\ \ W] *“, Buchstaben [J] .ToString () .ToLower (), Buchstaben [J] .ToString () .ToUpper ());
}
//End das Muster
patternBuilder.Append (")“);
//Add das neue Muster zu unserer Liste.
Patterns.Add (neues Regex (patternBuilder.ToString ()));
}
Rückholfilter;
}
///
/// die Funktion, die die manipulierte Schnur zurückbringt
///
///
///
allgemeine Schnur GetCleanString (Schnur eingegeben)
{
für (int I = 0; I < Patterns.Count; i++)
{
//In dieser Fall ersetzen wir wirklich jeden Fall jedes schlechten Wortes durch eine spezifizierte Schnur.
Eingang = Muster [i]. Ersetzen (Eingang, „####");
}
//return die manipulierte Schnur
Rückholeingang;
}
allgemeines bool IsCleanString (Schnur eingegeben)
{
für (int I = 0; I < Patterns.Count; i++)
{
//In dieser Fall ersetzen wir wirklich jeden Fall jedes schlechten Wortes durch eine spezifizierte Schnur.
wenn (Muster [i] .IsMatch (Eingang))
{
Rückholfalsches;
}
}
//return die manipulierte Schnur
Rückhol ausrichten;
}
}
|