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

API standards et tierces Java Discussion :

FiniteAutomaton regular expression


Sujet :

API standards et tierces Java

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut FiniteAutomaton regular expression
    Bonjour à tous,

    Je ne sais absolument pas si je poste au bon endroit, donc désolé par avance si je me trompe de forum.

    J'utilise la librairie de dk.brics pour la construction d'automates

    http://www.brics.dk/automaton/doc/in...on/RegExp.html

    Je précise tout de suite que je n'ai pas la possibilité de changer de librairie...


    Je voudrais créer un automate qui interdise l'enchainement de la valeur -1, avec d'autres valeurs.

    Par exemple :

    -1, 2 doit être refusé
    2, -1 est accepté

    Bref cela devrait être simple, en tout cas, c'est facile à faire avec juste des nombres positifs, mais le fait d'avoir un -1, me pose des problèmes.

    Voilà ce que j'ai essayé :

    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
     
    List<String> forbiddenRegExps = new ArrayList<String>();
     
    		String allButMinusOne  = "(0|1|2|3|<-2>|<-3>)";
     
    		for(int i=0 ; i<2 ; i++){
    			forbiddenRegExps.add(allButMinusOne + "*" + "<-1>+" + allButMinusOne +"+");
    			System.out.println(allButMinusOne + "*" + "<-1>+" + allButMinusOne +"+");
    		}
     
     
    		// --- Building the complete automaton
    		FiniteAutomaton auto = new FiniteAutomaton();
    		for (String reg : forbiddenRegExps) {
    			FiniteAutomaton a = new FiniteAutomaton(reg);
    			auto = auto.union(a);
    			auto.minimize();
    		}
    		auto = auto.complement();
    		auto.minimize();
    		boolean b = auto.run(new int[]{0, 1, 2, 3, -1, -1});
    		System.err.println("result 1 : " + b + " (should be true)");
     
    		boolean b2 = auto.run(new int[]{0, 1, 2, 3, -1, -1, 3});
    		System.err.println("result 2 : " + b2 + " (should be false)");
    Est ce que quelqu'un a une idée du problème?
    Un grand merci d'avance !!

  2. #2
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Etrange cette boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(int i=0 ; i<2 ; i++){
    			forbiddenRegExps.add(allButMinusOne + "*" + "<-1>+" + allButMinusOne +"+");
    			System.out.println(allButMinusOne + "*" + "<-1>+" + allButMinusOne +"+");
    		}
    En ce qui concerne les regex pour ton cas je dirais que ça devrait donner cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String forbidenRegExp = ".*<-1>.*"

Discussions similaires

  1. Regular expression qui ne fonctionne pas
    Par Remedy dans le forum Langage
    Réponses: 2
    Dernier message: 11/05/2007, 16h52
  2. [Regular expression] Possessive quantifiers
    Par Pragmateek dans le forum Langage
    Réponses: 1
    Dernier message: 24/06/2006, 12h55
  3. [debutant] Regular Expression
    Par absolut75 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 13/06/2006, 01h43
  4. [RegEx] Empty regular expression
    Par Khrysby dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2006, 22h25
  5. [Regular Expressions] Numérotation romaine
    Par ramalho dans le forum Valider
    Réponses: 3
    Dernier message: 24/02/2004, 17h43

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