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

Collection et Stream Java Discussion :

[REGEX] expression régulière qui match tout les nombres sauf un


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 156
    Par défaut [REGEX] expression régulière qui match tout les nombres sauf un
    Bonjour,

    Je cherche à écrire une expression régulière en java qui match une chaine suivi de n'importe quel nombre sauf un. Cela parait tout bête mais je n'arrive pas du tout à le faire.

    Je voudrais par exemple que mon expression matche avec
    test = 112

    mais refuse
    test = 111.

    Sauf que si j'essaye quelque chose du genre "test = [^111]" je me retrouve avec une expression régulière qui accèpte tout sauf des 1, quel que soit leur nombre...

    Est ce qu'il est possible de définir une "chaine" à exclure d'un ensemble (en l'occurence l'ensemble des nombres entiers), et si oui comment?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    je dirais .*[^1]

  3. #3
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Citation Envoyé par Uther Voir le message
    je dirais .*[^1]
    Je rajouterai le caractère de fin afin d'etre le plus précis
    .*[^1]$

  4. #4
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Citation Envoyé par zorm Voir le message
    Je rajouterai le caractère de fin afin d'etre le plus précis
    .*[^1]$
    J'ai failli poster la même réponse, mais c'est vrai que je ne vois pas pourquoi ça ne marcherait pas sans le $, vu qu'on ne spécifie rien d'autre derrière... As-tu un contre-exemple qui ferait "planter" le .*[^1] ?

  5. #5
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par DevTeam_ Voir le message
    J'ai failli poster la même réponse, mais c'est vrai que je ne vois pas pourquoi ça ne marcherait pas sans le $, vu qu'on ne spécifie rien d'autre derrière... As-tu un contre-exemple qui ferait "planter" le .*[^1] ?
    Si on utilise la méthode matches(), $ (fin de la chaine) est inutile, tout comme le ^ (début de la chaine). En effet la méthode matches() vérifiera toute la chaine dans tous les cas...


    a++

  6. #6
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,



    Si on utilise la méthode matches(), $ (fin de la chaine) est inutile, tout comme le ^ (début de la chaine). En effet la méthode matches() vérifiera toute la chaine dans tous les cas...


    a++
    Impec, merci pour l'explication !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Expression régulière qui engloberait tous les cas
    Par amazigh42 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 09/08/2013, 09h53
  2. Réponses: 1
    Dernier message: 15/03/2013, 17h26
  3. [RegEx] Expression régulière qui fait tout planté !
    Par Adams93 dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2012, 11h03
  4. [RegEx] Expression régulière qui supprime les []
    Par ipeteivince dans le forum Langage
    Réponses: 4
    Dernier message: 24/11/2010, 14h02
  5. [Regex] Expression régulière qui ne passe pas avec \.
    Par jsd03 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 10/03/2009, 16h49

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