C# - Trouver et supprimer les sous-chaîne à partir d'une liste de chaînes

J'ai un mauvais mot de la liste. Si une chaîne contient tout de l'élément/des éléments de la mauvaise liste de mots, j'ai besoin d'enlever cette mauvaise parole de la chaîne.

List<string> badWordList = new List<string> { "email:", "index", "mobile:", "fax:", "web" };

Je suis en mesure de rechercher la chaîne de caractères, mais ne peut pas supprimer. Merci de m'aider...j'ai essayé le code ci-dessous:

string myText = "email:[email protected]";
if (badWordList.Any(w => myText.IndexOf(w, StringComparison.OrdinalIgnoreCase) >= 0))
{
    //How to remove
}

Ci-dessous est l'ensemble de l'entrée de la sortie attendue:

  1. i/p - email:[email protected]

    o/p - [email protected]

  2. i/p - Jack F. Mobile:89788987

    o/p - Jack F. 89788987

  3. i/p - Jack F. Email:[email protected] mobile:65777 WEB

    o/p - Jack F. [email protected] 65777

Je préfère un non-regex approche. Merci pour votre aide.

  • Aucun problème avec les Regex? C'est toujours plus rapide et plus pratique.
  • myText = myText.Replace(badWordList.First(i => myText.IndexOf(w, StringComparison.OrdinalIgnoreCase) >= 0), ""); Généralement, si c'est en allant à la poignée de l'entrée utilisateur, assurez-vous qu'il ne sera pas.
  • Pas de problème avec la Regex.
  • Les réponses ne doivent pas être mis dans un commentaire, toutefois simple, la réponse est que c'est une réponse.
  • Ce n'est pas une solution car il échouera dans de nombreux cas, de ne pas être utile pour les futurs lecteurs.
  • double possible de Supprimer la sous-chaîne à partir d'une liste de chaînes de caractères

InformationsquelleAutor SKJ | 2013-06-24