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 :

Expressions Régulières en Java


Sujet :

API standards et tierces Java

  1. #1
    Membre confirmé Avatar de Feres_agent1116
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Février 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Back-End
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 121
    Par défaut Expressions Régulières en Java
    Bonjour ,

    Suite a une condition sur un bout de code au niveau d'un projet java , j'ai trouvé ce syntaxe mais j'arrive pas a comprendre la signification exacte (évaluation d'une expression régulière).
    voici l'exemple:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    static final String PATTERN = "^[\\p{L}][\\p{L}._\\- \\d]+$";
    
    if (!post.matches(PATTERN)) {
              return false;
            }
    
    sachant que la méthode de la class String utilise l'API java.util.regex

    j'ai fait quelques recherches sur les expression réguliers, j'arrive pas à trouver les renseignements nécessaire pour la détermination de la valeur finale.

    sachant que :

    • ^ pour affirmer la position au début de la chaîne.
    • [] correspondre à un seul caractère présent dans la liste ci-dessous
    • \P{L} correspond à n'importe quel type de lettre de n'importe quelle language
    • $ la fin d'une ligne
    • ._\\- \\d ils sont inconus


    Pouvez vous m'aider sur ce sujet? Merci

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 988
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 988
    Par défaut
    \\d correspond aux chiffres (digits [0-9]) , les autres caractères n'ont pas de signification particulière et doivent être vu comme des caractères littéraux. Une petite exception tout de même avec \\- qui représente le caractère litéral - et qui est ici échappé car il peut être utilisé dans une classe de caractères pour définir un rang (comme dans [a-z]). On peut éviter d'échapper ce caractère en le plaçant au début ou à la fin de la classe de caractère pour éviter toute ambiguïté: ^[\\p{L}][\\p{L}._ \\d-]+$.

    À noter aussi que les crochets de la première classe sont inutiles: ^\\p{L}[\\p{L}._ \\d-]+$.

    À propos des ancres ^ et $: ces ancres représentent par défaut le début et la fin de la chaîne de caractère, et non pas de la ligne. Néanmoins, leur sens peut être modifier avec l'option MULTILINE, dans ce cas seulement les ancres se rapportent à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pattern ptn = Pattern.compile("^\\p{L}[\\p{L}._ \\d-]+$", Pattern.MULTILINE);
    On peut également activer cette option dans la pattern elle-même avec le modificateur inline (?m):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static final String PATTERN = "(?m)^\\p{L}[\\p{L}._ \\d-]+$";
    Mais dans le cas présent, les ancres ne sont pas nécessaires car la méthode utilisée est la méthode matches qui vérifie que la pattern décrit bien la chaîne de bout en bout (l'ancrage est alors implicite). Il suffit donc d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static final String PATTERN = "\\p{L}[\\p{L}._ \\d-]+";

  3. #3
    Membre confirmé Avatar de Feres_agent1116
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Février 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Back-End
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 121
    Par défaut
    Merci pour votre réponse et pour toute l aide que vous avez déjà apportée.

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

Discussions similaires

  1. Les expressions régulières en java
    Par blackhock dans le forum Général Java
    Réponses: 2
    Dernier message: 21/04/2009, 13h05
  2. Expression régulière avec java
    Par mouvma dans le forum Général Java
    Réponses: 2
    Dernier message: 18/01/2008, 17h00
  3. expression régulière en java
    Par shirya dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 21/09/2007, 16h10
  4. expression régulière en java
    Par Karine2007 dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2007, 12h35
  5. Expressions régulières en Java
    Par jason69 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 04/07/2007, 10h50

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