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

Python Discussion :

Regex pour capturer du code


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 102
    Par défaut Regex pour capturer du code
    Bonsoir tout le monde

    Voila, actuellement je suis en train d'essayer de capture des méthodes présente dans une classe Java à partir du Python, cependant j'ai un mal fou à réussir à trouver la bonne regex :'(
    Par exemple pour le moment je suis arrivé à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regex = re.compile("^(?=private|public|protected).+(?=void nomMethod)(.+)",re.MULTILINE|re.DOTALL)
    Cependant là j'ai deux problèmes, pour réussir à capturer une méthode il faut que je connaisse le type de retour et le nom de celle-ci donc c'est pas vraiment utile comme Regex et je cherche donc à faire un truc générique.
    Et le problème c'est que je ne sais pas comment faire pour lui dire arrête toi à la fin de la méthode, car ce que j'ai trouvé c'est de rajouter ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regex = re.compile("^(?=private|public|protected).+(?=void nomMethod)(.+)(?!private|public|protected)",re.MULTILINE|re.DOTALL)
    mais le problème c'est qu'après ça ne match uniquement que la dernière méthode.

    Merci par avance

  2. #2
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Je ne connais pas (du tout) Java, mais il y a au moins un problème dans ta regex*: quand on utilise un truc comme “.+” dans une regex, on veut en fait (presque) toujours utiliser la version non-gloutone*: “.+?”. Sinon, “.+” va tout bouffer*!

    Donc, essaye déjà avec ça*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regex = re.compile("^(?=private|public|protected).+?(?=void nomMethod)(.+?)(?!private|public|protected)", re.MULTILINE|re.DOTALL)

Discussions similaires

  1. [Débutant] Regex pour capturé les Urls
    Par Horizon69 dans le forum VB.NET
    Réponses: 5
    Dernier message: 02/07/2013, 18h57
  2. [RegEx] Regex pour IP et code pays
    Par goldkey dans le forum Langage
    Réponses: 5
    Dernier message: 15/01/2009, 15h20
  3. [RegEx] Regex ou autre pour capture de texte ?
    Par oneTime dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2008, 18h46
  4. [RegEx] regex pour supprimer l'indentation du code
    Par cassy dans le forum Langage
    Réponses: 7
    Dernier message: 27/08/2007, 14h02
  5. Réponses: 5
    Dernier message: 10/07/2006, 15h02

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