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

avec Java Discussion :

Regex simple en Java


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Regex simple en Java
    Bonjour,

    je suis bloqué sur une simple regex java. (je connais mal les regular expressions)
    je tente de matcher le motif ci joint :
    ID0001
    ID1010223

    -> c'est à dire le mot ID et une série de chiffre.

    j'ai essayé : /ID[0-9]*$/ mais ça ne passe pas mes tests.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    import org.junit.Test;
    import static org.junit.Assert.*;
     
    public class TestJava {
     
    	@Test
    	public void testRegExp() {
    		// TODO Auto-generated method stub
    		String regexp = "/ID[0-9]*$/";
    		String s1 = "I"; //FALSE
    		String s2 = "ID"; //FALSE
    		String s3 = "IDA"; //FALSE
    		String s4 = "IDA0000"; //FALSE
    		String s5 = "ID0000A"; //FALSE
    		String s6 = "ID0123";//TRUE
    		String s7 = "ID0123A";//FALSE
     
     
    		assertEquals(false, s1.matches(regexp));
    		assertEquals(false, s2.matches(regexp));
    		assertEquals(false, s3.matches(regexp));
    		assertEquals(false, s4.matches(regexp));
    		assertEquals(false, s5.matches(regexp));
    		assertEquals(true, s6.matches(regexp));
    		assertEquals(false, s7.matches(regexp));
     
    	}
     
    }
    merci pour l'aide.

  2. #2
    Candidat au Club
    Homme Profil pro
    Curieux en informatique
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Curieux en informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    il me semble que l'expression est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regexp = "ID[0-9]+";

  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,


    Les slash n'ont rien à faire dans la regexp, puisqu'il ne sont pas présent dans ton motif.
    De même que le $ est inutile avec matches(), qui va forcément vérifier toute la chaine.

    Enfin si tu veux au moins un chiffre, il faut utiliser un + et non pas *.

    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String regexp = "ID[0-9]+";
    A noter également que si cela doit être utiliser plusieurs fois, il est préférable de compiler le pattern une fois pour toute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Pattern pattern = Pattern.compile("ID[0-9]+");
     
    // s.matches(regexp) devient alors :
    pattern.matcher(s).matches()

    a++

Discussions similaires

  1. besoin d'aide pour comprendre un exo simple de java
    Par chadel dans le forum Langage
    Réponses: 2
    Dernier message: 16/03/2007, 23h27
  2. Calendrier simple en java
    Par Premium dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 20/12/2006, 23h50
  3. Forum simple en Java
    Par lolo_ici_et_la dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 18/09/2006, 17h03
  4. Un petit software simple en JAVA qui sauve en XML ??
    Par calogerogigante dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/11/2005, 14h19
  5. Edition d'un simple fichier java
    Par mcrepin dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 21/03/2003, 14h28

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