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

Java Discussion :

expression reguliere et son execution


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Par défaut expression reguliere et son execution
    Bonjour,

    je voudrais ecrire une expression reguliere qui n'accepte , que :

    a-z
    A-Z
    0-9
    .,:-
    espace

    mais je n'arrive pas

    j'ai fais ça , mais apparemment c'est pas correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ExpressionReguliere1 = "[a-zA-Z0-9.:,-]";
    pour son exécution , j'utilise cette séquence juste pour tester mais ca bloque quelque part :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Pattern p = Pattern.compile(ExpressionReguliere1 );
    	    Matcher match = p.matcher("monstring");
    	    boolean result = match.find();

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    salut,
    quand tu veux ajouter un "-" à ton pattern, il faut obligatoirement le mettre au tout début, et le point à un sens particulier dans un pattern, il signifie n'importe quel caractère, si tu veux le caractère point, il faut l'échapper
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ExpressionReguliere1 = "[-a-zA-Z0-9\\.:,]";

  3. #3
    Membre éclairé Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Par défaut
    merci pour l'aide sur l'expression reguliere , mais pour la téster , sa ne me génére pas le resultat attendu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Pattern p = Pattern.compile(ExpressionReguliere1 );
    	    Matcher match = p.matcher("monstring");
    	    boolean result = match.find();
    meme si je met des carectér qui ne rentrent pas dans mon expression reguliere , il me retourne true

  4. #4
    Membre éclairé Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Par défaut
    j'ai utilisé cette fonction et ca marche trés bien:

    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
      Pattern p = Pattern.compile("[a-zA-Z0-9\\;\\.\\-\\:\\s]");
            Matcher matcher = null;
            String line = "L-a. f;f-ff:501";
            char[] caracters = line.toCharArray();
            boolean isMetched = false;
            for (int i = 0; i < caracters.length; i++) {
                matcher = p.matcher(String.valueOf(caracters[i]));
                isMetched = matcher.matches();
                if (!isMetched) {
                    System.out.println("Il contient des caractères non acceptés ! ");
                    break;
                } else {
                    System.out.println("Ne contient pas des caractères non acceptés ! ");
                }
            }
    je veux juste savoir, est ce qu'il ny a pas un moyen , sans faire la boucle

  5. #5
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    il faudrait plutôt mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String expressionReguliere1 = "[-a-zA-Z0-9\\.:,]+";
    le + pour dire un ou plusieurs caractère qui s'accordent avec le pattern
    ensuite utilise plutôt la méthode matches à la place de find

    ou le mieux c'est de mettre à côté Pattern et matcher, et utiliser directement la méthode matches de String puisqu'elle fait ce que tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String str = "monstring";
    boolean result = str.matches(expressionReguliere1);

  6. #6
    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
    Normalement il n'y a même pas besoin d'échapper le caractère ".".

    A l'intérieur des crochets la plupart des caractères spéciaux n'ont plus de signification particulière (comme .+?()|)alors que d'autre deviennent des caractères significatifs ou changent de sens (comme ^-&)

  7. #7
    Membre éclairé Avatar de mystro7200
    Inscrit en
    Juillet 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juillet 2008
    Messages : 245
    Par défaut
    la solution de herch marche aussi trés bien , merci les amis.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/11/2006, 15h17
  2. [langage] [debutant] expression reguliere
    Par toto_titi dans le forum Langage
    Réponses: 3
    Dernier message: 01/07/2003, 09h45
  3. Réponses: 2
    Dernier message: 16/06/2003, 15h15
  4. [langage] surement une expression régulière...
    Par armada dans le forum Langage
    Réponses: 5
    Dernier message: 30/05/2003, 17h06
  5. [langage] expression reguliere motif répétitif dans 1 pattern
    Par comme de bien entendu dans le forum Langage
    Réponses: 11
    Dernier message: 09/04/2003, 16h14

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