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 :

Java Regex, Backreference et Quantifiers


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut Java Regex, Backreference et Quantifiers
    Bonjour,

    J'ai une question concernant les Regex en Java.
    J'ai une chaine de caractères qui contient (entre autres) un schéma du style:
    ...longueur_chaine chaine...

    Concrètement pour la chaine "blabla" on aura
    ... 6 blabla ...

    Ou encore pour une chaine avec espace
    ...21 Ma Chaine Avec Espace ...

    Ma chaine complète contient plusieurs occurrences de ce Pattern. J'aimerai vérifier que ma ligne complète correspond à un pattern prédéfini. J'aimerai donc vérifier que la chaine, soit bien de la longueur spécifiée par l'entier la précédent.

    J'essaye donc avec un pattern du type (le pattern de vérification de la chaine n'est pas complet):
    "([0-9]*) ([A-Za-z0-9]{\\1})"

    Cependant Java me met une erreur de quantifier illégal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 15
    <(\d+?).*?>(.*?){\1}
                   ^
    Les backreferences marchent très bien lorsqu'elles ne sont pas dans les quantifiers

    Ma question est simple. Est ce que cela est tout simplement possible ? Si oui, comment ?

    Merci car je n'ai pas trouvé plus de détails sur ce cas.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par psykoboy Voir le message
    Ma question est simple. Est ce que cela est tout simplement possible ?
    Nope. Enfin, pas avec des regex.

    Supposons que ta BackReference ce soit UneMoucheklubuvurgh, il faudrait le répéter combien de fois, le pattern, dans ce cas ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut
    Ouais c'est bien ce qu'il me semblait !
    Je posais la question a tout hasard, car n'étant pas un expert des Regex et connaissant leurs potentiels, je me suis dit que peut être...

    Enfin bon bref je vais chercher à le faire autrement du coup! Merci

Discussions similaires

  1. Convertir C# RegEx vers Java RegEx
    Par hbespoir2003 dans le forum C#
    Réponses: 6
    Dernier message: 19/06/2010, 11h38
  2. Convertir C# RegEx to Java RegEx
    Par hbespoir2003 dans le forum Général Java
    Réponses: 0
    Dernier message: 18/06/2010, 11h41
  3. Convert C# RegEx to Java RegEx
    Par hbespoir2003 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 17/06/2010, 23h31
  4. Java Regex remplacer un entier dans une chaine
    Par snoops2009 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 17/03/2009, 19h37
  5. java regex (suite)
    Par sroux dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2006, 14h13

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