Question

L'écriture d'un utilitaire de fichier à dépouiller tous les caractères non-ASCII à partir de fichiers. J'ai ce Regex:

Regex rgx = new Regex(@"[^\u0000-\u007F]");

Ce qui fonctionne très bien. Mais malheureusement, je l'ai découvert certaines personnes stupides utilisent des angles droits (¬) comme délimiteurs dans leurs fichiers, de sorte que ces get dépouillé aussi bien, mais je dois les!

Je suis assez nouveau pour Regex, et je comprends les bases, mais toute aide serait génial!

Merci à l'avance!

Était-ce utile?

La solution

Vous avez juste besoin d'inclure le point de code pour l'équerre dans l'ensemble:

Essayez ceci:

Regex rgx = new Regex(@"[^\uxxxx\u0000-\u007F]");

Ou ceci:

Regex rgx = new Regex(@"[^\uxxxx-\uxxxx\u0000-\u007F]");

(où xxxx est le point de code Unicode pour le caractère que vous souhaitez conserver.)

La raison de donner deux options est que je sais que vous pouvez spécifier plusieurs plages dans un groupe de caractère négatif, mais je ne sais pas si vous pouvez faire correspondre les caractères individuels avec des plages.

Autres conseils

La réponse de Jon est tout à fait correcte. Vous utilisez peut-être le mauvais code pour le caractère. Essayez les éléments suivants pour les personnages qui se ressemblent:

Regex regex = new Regex(@"([^\u00ac\u0000-\u007F])");
Regex regex = new Regex(@"([^\u02fa\u0000-\u007F])");
Regex regex = new Regex(@"([^\u031a\u0000-\u007F])");

D'abord ne devrait travailler que je pense.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top