IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Supprimer les caractères spéciaux


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Points : 95
    Points
    95
    Par défaut Supprimer les caractères spéciaux
    Bonjour,
    je dois faire un traitement sur une chaine, je dois :
    - supprimer les espaces
    - remplacer la caractère accentués par leurs lettres (par exemple à par a...)
    - enlever tous les caractères différents de [a...z] et [0...9].

    j'ai une chaine :
    "[albert 1er va en forêt ] '{#~{"
    et je voudrais récuperer une chaine :
    "toto1ervaenforet"~

    Peut on faire cela avec des expressions regulieres, où dois je me "coltiner" les changements 1 par 1 .

    Merci par avance

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    on peut faire cela avec les expressions régulières.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Points : 95
    Points
    95
    Par défaut
    comment fait-on ??

  4. #4
    Membre éclairé
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Points : 751
    Points
    751
    Par défaut
    comme ça.
    Pour voir si une expression correspond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Regex myRegex = new Regex(@"^\w+$");
    myRegex.IsMatch(taChaine);
    Ici, cela vérifiera que tu as au moins un carctère alphanumérique dans ta chaîne. IsMatch renvoi vrai si ta chaine est validée par la Regex.

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bah en utilisant les expressions régulières

    Bon je vais être gentil est t'en dire plus, mais la prochaine fois ne met pas une queswtion qui attends une réponse oui ou non mais décrit précisément ce que tu attends :
    1) qu'on te fasses le code -> La je t'envois bouler
    2) qu'on t'explique la marche à suivre -> Là moi perso je t'aide.
    3) qu'on te donne le nom des classes du framework à étudier pour faire le truc -> Si je les connais je te les donne.

    Dans ton cas regarde du coté de l'objet Regexp . Je ne l'ai pas encore utilisé alors je ne le connais pas bien, mais en gros l'idée est :
    1) Tu trouves un motifs qui te permet de repérer les différents caractères spéciaux. (je ne suis pas fort la dessus non plus).
    2) En fonction des possibilité de regexp, à chaque fois que tu rencontre le motif tu le délète, le modifie, ....
    3) Si tu ne peux agir pendant le dénombrement, tu récupère toutes les occurences de tes caractères spéciaux et leur index dans le tableaux de char (un string peut être considérés comme un tableau de char, d'ailleurs tu as une fonction ToCharArray pour le convertir vraiment) et puis tu va à ces index faire les déletions, modifications, ....

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Citation Envoyé par dahtah Voir le message
    comme ça.
    Pour voir si une expression correspond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Regex myRegex = new Regex(@"^\w+$");
    myRegex.IsMatch(taChaine);
    Ici, cela vérifiera que tu as au moins un carctère alphanumérique dans ta chaîne. IsMatch renvoi vrai si ta chaine est validée par la Regex.

    Tu as cassé mon entrer


  7. #7
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Regarde aussi avec la méthode Regex.Replace()

  8. #8
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Bonjour,

    Hop hop je remonte ce sujet, car je n'arrive pas a utiliser les regExp pour supprimer les caracteres speciaux de mes strings

    Pourtant voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Regex myReg = New Regex("\w{5,255}");
    myReg.Replace(content, "");
     
    Regex myReg3 = New Regex("[$#%@&*(){}+]");
    myReg3.Replace(content,"")
    Mais les caracteres speciaux de ma string content ne sont pas supprimés.

    Est ce que mes regex ne seraient pas bonnes? Ou mauvaises utilisation de la classe Regex??

    Merci de vos précisions.

  9. #9
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Tes caractères spéciaux que tu indiques dans tes chaînes, contiennent des caractères spéciaux RegEx, donc ils ne sont pas interprétés dans la méthode Replace(), il te faut ajouter le caractère d'échappement (backslash : "\") pour chacun de ces caractères spéciaux RegEx.

    Pour plus d'informations sur les RegEx, je te renvoie à l'excellent article de Louis-Guillaume MORAND : Utilisation des expressions régulières en .Net.

Discussions similaires

  1. [XL-2007] Supprimer les caractères spéciaux
    Par Yolak dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 17/01/2017, 15h56
  2. Réponses: 3
    Dernier message: 10/08/2010, 13h29
  3. [XSLT] Supprimer les caractères spéciaux HTML d'un noeud texte
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/12/2008, 22h59
  4. Supprimer les caractères spéciaux
    Par sami_c dans le forum Langage
    Réponses: 4
    Dernier message: 09/09/2008, 13h12
  5. [Jsp] Supprimer les caractère spéciaux d'une chaine
    Par PeteMitchell dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/05/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo