2009-04-09 5 views
-1

Comment puis-je développer ceci pour supprimer tous les caractères spéciaux, par ex. :;, etc., mais encore faire ce qu'il fait maintenant qui est de supprimer <div> tags:Extension de ces expressions régulières pour supprimer tous les caractères spéciaux

string BBCSplit = Regex.Replace(BBC, @"<(.|\n)*?>", string.Empty); 
+1

Que voulez-vous dire par « spécial »? Y a-t-il autre chose qu'une lettre ou un numéro "spécial"? Y a-t-il autre chose que tu veux garder? –

+1

c'est ok, mais pourquoi ne prenez-vous pas la peine d'apprendre des expressions régulières. Ce n'est pas comme s'il y avait des centaines de tutoriels sur le web. Ensuite, vous n'auriez pas à poser à peu près la même question encore et encore. – gbjbaanb

Répondre

4
string BBCSplit = Regex.Replace(BBC, @"<(.|\n)*?>|[:;]", string.Empty); 

Par attention si les caractères « spéciaux » que vous voulez supprimer include « « », « ] », etc .--, vous aurez besoin de mettre un « \ » devant eux.

+0

Cela semble correct, je voudrais ajouter "\", basé sur les exemples. et aussi je me demandais, si les caractères à l'intérieur des [] s étaient séparés par une virgule (ou peut-être même une pipe) ?? donc quelque chose comme [:, \ ,,;] – gnomed

+0

@gnomed - Non, les caractères entre crochets ne doivent pas être séparés par quoi que ce soit. – MarkusQ

0

Vous pouvez ajouter plus avec le caractère d'alternance (tube ou |).

0

Il y a beaucoup de façons de le faire dans RegEx, la réponse de Markus pour supprimer les citations, les supports, les nouvelles lignes, et la ponctuation serait la suivante: (souvenez-vous de doubler votre guillemet dans une chaîne de @)

@"<(.|\n)*?>|[:;,[email protected]#$%^&*()-_+='""[\]]" 

Une autre méthode serait d'enlever tout caractère non-espace et non-alphanumérique.

@"<(.|\n)*?>|[^\s\w]" 

Je suggère d'être plus strict avec votre RegEx. Si vous souhaitez supprimer quelques balises, rendez-vous avec:

@"</?\w*(.|\s)*?>|[^ \w]" 
Questions connexes