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

Langage Perl Discussion :

Suppression de caractères spéciaux


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Par défaut Suppression de caractères spéciaux
    Bonjour,
    Je voudrai 'nettoyer' une chaîne contenant des caractères tels que , () [] :,
    je pensais qu'en essayant de déspécialiser ces caractères cela donnerait quelque chose, mais apparemment cela ne marche pas.
    Les ancres de mots ne permettent pas de récupérer autre chose que
    [A-Za-z0-9_].

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    montre nous ce que tu as fait pour!! car une regex est suffisant pour faire ce que tu veux

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    salut utilise quotemeta

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $var = quotemeta($var)
    genre : mon.example va devenir mon\.example
    il faut par contre supprimer les \ après si tu veux imprimer ta chaine de caractère avec par example :


  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Par défaut
    j'ai créé un tableau contenant les caractères spéciaux précédés d'un \
    mais sans succès.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    il y a une methode un peu bourin, c'est à dire faire la liste de tout les caractère à enlever puis de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $var =~ s/\(//g;
    $var =~ s/\)//g;
    $var =~ s/\[//g;
    $var =~ s/\]//g;
    $var =~ s/\,//g;
    ...
    mais c'est pas très beau

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $caractere = quotemeta("():[];,.");
    my $phrase = "bonjour (toto) : [oui] : et?.";
    print "$phrase\n";
    $phrase =~ s/[$caractere]//gi;
    print "$phrase\n";

  7. #7
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 43
    Par défaut
    En fait j'ai essayé cette méthode avec des ou(|) et apparemment ça fonctionne, j'ai juste un souci pour contextualiser mon nettoyage.
    Exemple enlever toute les virgules sauf celles qui apparaissent dans les décimaux.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    j'ai une solution pas très jolie, je pense que djibril va trouver mieux.

    tu commence par enlever tous les caractères sauf les virgules ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $var =~ s/\d\,\d/\(/g;
    $var =~ s/\,//g;
    $var =~ s/\(/\,/g;
    la tu va garder toutes les virgules entourées de deux chiffres

Discussions similaires

  1. Suppression des caractères spéciaux
    Par chebmo90 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2009, 15h44
  2. Suppression de caractères spéciaux en bash
    Par judavid dans le forum Linux
    Réponses: 2
    Dernier message: 04/02/2009, 20h57
  3. [regexp] Suppression de caractères spéciaux
    Par Katachana dans le forum Langage
    Réponses: 3
    Dernier message: 17/07/2008, 10h30
  4. [RegEx] Suppression des caractères spéciaux et nombres
    Par kenny.kev dans le forum Langage
    Réponses: 6
    Dernier message: 03/03/2008, 16h53
  5. Suppression de caractères spéciaux
    Par nellynew dans le forum Access
    Réponses: 3
    Dernier message: 18/09/2006, 10h14

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