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

Langage Java Discussion :

règle de syntaxe - expression régulière


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut règle de syntaxe - expression régulière
    Bonjour,

    J'apprends les expressions régulières depuis quelque jours et j'ai un petit soucis.

    En partant de la règle syntaxique suivante, soit pour une entité C :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C --> com | def | (eval C+)
    | signifie ou
    + siginifie au moins 1 à n

    D'après moi les exemples suivant correspondent à la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    com
    def
    (eval def)
    (eval com)
    Mais aussi avec une imbrication qui peut être infini, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (eval com (eval com) (eval (eval def) def com))
    ...

    Est-il possible de traduire cela en expression régulière ? Si oui coment ?
    C'est bien évidement le (eval C+) qui me pose problème.

  2. #2
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Ayant pratiqué pas mal de temps les expressions régulières, je n'ai jamais vu d'expression régulière récursive. Ton problème ressemble plutôt à une grammaire de machine à états finis.

  3. #3
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Merci de ta réponse.

    je n'ai jamais vu d'expression régulière récursive.
    Je m'en doutais.

    une grammaire de machine à états finis
    Qu'est-ce donc ?

  4. #4
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    Un automate fini ou machine à états finis et une donc un système composé d'un ensemble d'états et de transitions. Cela peut paraitre compliqué mais c'est assez simple. Et justement on peut s'en servir pour reconnaître des chaînes de caractères. Et il gère parfaitement la récursivité.

    La grammaire, c'est un moyen de décrire les différents états et transitions de ces automates.

    L'avantage de tout cela c'est qu'on peut le transcrire en programme de manière assez direct (cela dépends tout de même du type de grammaire).

    Donc cela pourrait être une solution élégante à ton problème.

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Merci de cette définition claire. C'est en plus intéressant.

    Aurait-tu un lien de page qui en parlerait de manière pédagogique. Et surtout pour un débutant, càd quelqu'un qui ignore tout des automates finis.

    Parce que quand tu dit :
    Cela peut paraitre compliqué mais c'est assez simple.
    Ça parait effectivement compliqué

    J'ai googlisé, mais bon, je ne suis tombé que sur des choses ou tu doit déjà avoir une bonne idée de la bête pour profiter de la ressource en ligne.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut visiwi,

    Si tu arrives à me remotiver pour continuer cette page tu pourras avoir un cours dessus...
    Sinon ce lien là . http://www-igm.univ-mlv.fr/~desar/Cours/automates/ me parait pas mal mais j'ai pas approfondi.
    Lesmots clef : Théorie des langages, Automates finis, Grammaires...

    A plus

Discussions similaires

  1. Syntaxe expression régulière
    Par jeeland dans le forum Général Java
    Réponses: 12
    Dernier message: 02/11/2013, 22h29
  2. Syntaxe expression régulière egrep
    Par madmaxou dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 30/01/2009, 16h05
  3. expression régulière syntaxe
    Par Oluha dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/06/2007, 13h47
  4. [RegEx] Pb de syntaxe d'expression régulière
    Par renaudjuif dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2006, 20h52
  5. [RegEx] preg_replace et syntaxe des expressions régulières
    Par MmoulinexX dans le forum Langage
    Réponses: 4
    Dernier message: 04/06/2006, 23h57

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