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

Groovy Java Discussion :

Regexp avec des morceaux de caractères spéciaux dedans


Sujet :

Groovy Java

  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut Regexp avec des morceaux de caractères spéciaux dedans
    Bonjour à tous,

    j'ai une petite question concernant une Expression régulière Avec groovy : j'essaie de trouver les chaines qui contiennent des caractères spéciaux:

    import java.util.regex.Matcher
    import java.util.regex.Pattern
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def pattern = ~/([^a-zA-Z0-9])+/
    println (pattern.matcher(mavariable.matches())?1:0);
    je cherche à savoir quelles chaines contiennent des caractères spéciaux

    dans mavariable j'ai par exemple:
    hello/world
    ejection!
    ah bon ?
    bonjour
    /

    il me renvoie 0 tout le temps sauf pour le dernier...

    une idée ?

    d'avance merci !
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hum hum. Et comment est construite exactement ta regex ? Peux-tu nous dire, en français, ce que signifie chaque chose que tu as mis dedans ?

    Pas son effet final tout construit, ça non, tu l'as déjà dit. Ce que fait chaque morceau.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,



    matches() vérifie que la totalité de la chaine correspondent bien au pattern, donc le résultat est tout à fait normal.

    Donc soit tu inverses ton pattern pour représenter les chaines valides, soit tu utilises find() qui recherche la présence d'un sous-élément correspondant au pattern.


    a++

  4. #4
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 484
    Points : 873
    Points
    873
    Par défaut
    Bonjour à vous deux et merci pour vos réponses,

    Donc soit tu inverses ton pattern pour représenter les chaines valides, soit tu utilises find() qui recherche la présence d'un sous-élément correspondant au pattern.
    ah ok, je vais donc utiliser find() du coup

    Peux-tu nous dire, en français, ce que signifie chaque chose que tu as mis dedans ?
    ok, je vais essayer:

    [^a-zA-Z0-9] => est censé représenter tout ce qui n'est pas minuscule, Majuscule ou chiffre. Selon moi le chapeau fait cela
    + => au moins un

    mais je n'ai pourtant pas l'impression que ca fonctionne ainsi...
    laloune
    Consultant B.I.
    Spécialité(s): Excel, SQL, Business Intelligence (Jedox Palo, Talend)

    "A problem worthy of attack proves its worth by fighting back." Piet Hein

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par laloune Voir le message
    [^a-zA-Z0-9] => est censé représenter tout ce qui n'est pas minuscule, Majuscule ou chiffre. Selon moi le chapeau fait cela
    + => au moins un

    mais je n'ai pourtant pas l'impression que ca fonctionne ainsi...
    C'est pas "au moins un" c'est "et ce que je viens de dire, à l'endroit où je l'ai mis, il doit y être au moins une fois."

    Autrement dit, le + n'est pas magique. Il ne change rien au fait que, si tu mets rien d'autre devant ou derrière, alors il ne doit rien y avoir d'autre devant ou derrière.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/11/2007, 12h08
  2. Réponses: 3
    Dernier message: 09/03/2007, 11h23
  3. [MySQL] transmettre via url des chaînes de caractères spéciaux
    Par xenos dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/02/2007, 02h16
  4. Problème dans des "IF" avec des chaines de caractères
    Par lanysteph dans le forum Langage
    Réponses: 4
    Dernier message: 16/11/2006, 11h37
  5. Soucis avec le remplacement de caractères spéciaux
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/07/2005, 11h42

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