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 :

Explication de code - RE


Sujet :

Python

  1. #21
    Membre régulier
    Avatar de Miksimus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 100
    Points : 84
    Points
    84
    Par défaut
    ok, adaptons-nous alors !

  2. #22
    Membre régulier
    Avatar de Miksimus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 100
    Points : 84
    Points
    84
    Par défaut solution en vue ?
    Bon voilà un début...

    J'ai fait une fonction qui compare deux formules et qui garde les caractères présents dans les deux formules, dans l'ordre :
    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
    16
    17
    18
    19
    20
    a = "5-HT<sub>1A</sub>"
    b = "5-hydroxytryptamine 1A"
     
    caract = a[0].upper()
    stop = 0
    restes = []
    i = 0
     
    for j in range(len(a)):
        caract = a[j].upper()
        print "a[%s] = %s"% (j,a[j]) # vérification (TEST)
        for i in range(len(b)):
            print 'i = ', i # vérification (TEST)
            print "b[%s] = %s"% (i,b[i]) # vérification (TEST)
            if caract == b[i].upper():
                restes = restes + [caract]
                print "restes", restes
                break
            i = i+1
    print "restes = ", restes
    Si j'execute donc ce programme, on a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> restes = ['5', '-', 'H', 'T', '1', 'A']
    pour ces deux formules, on aura donc une expression régulière du genre:
    5.*?-.*?[Hh].*?[Tt].*?[1].*?[Aa]
    mais bon c'est que pour ces deux formules (il faut donc étendre le programme à toutes les formules) et ce serait bien de notifier lorque 2 caractères sont côte à côte (par exemlpe ici 5-H)

    C'est un début donc !...

    [EDIT]
    si on rajoute ces lignes à la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    regex = "(?i)(" + restes[0]
    k = 1
    while k < len(restes):
        regex = regex + ".*?" + restes[k]
        k = k + 1
    regex = regex + ")"
    print "regex = ", regex
    on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>>regex = (?i)(5.*?-.*?H.*?T.*?1.*?A)
    note le (?i) c'est l'option ignorecase (majuscule ou minuscule c'est pareil, du coup, "5-ht" = "5-HT")

    [/EDIT]

  3. #23
    Membre régulier
    Avatar de Miksimus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 100
    Points : 84
    Points
    84
    Par défaut ptit bleme
    Cependant il y a encore un problème, car sur la première ligne de ton texte, on trouve aussi bien :
    5-HT-1A
    que :
    guanine nucleotide-binding regulatory protein-coupled
    ou :
    ADRB2RL1

    Personnellement, je ne vois aucun caractères en commun dans ces trois formules... Donc si on execute le programme précédent sur ces trois formules, l'expression régulière retournée sera nulle...

    Les personnes qui t'on donné ceci à faire se sont-t-il aperçu qu'il y avait ce problème là ?

    Parce qu'ici si tu essaye de récupérer les formules de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    P08908 5-HT<sub>1A</sub> 5-hydroxytryptamine 1A receptor 5-HT-1A|Serotonin receptor 1A|5-HT1A|G-21|5-HT1a receptor|ADRB2RL1, ADRBRL1|G protein coupled receptor|guanine nucleotide-binding regulatory protein-coupled receptor HTR1A 5-HT1A|ADRBRL1|ADRB2RL1
    Qu'obtiens-tu ?

  4. #24
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Bonjour!

    Je voudrais savoir s'il est possible de sélectionner la première lettre d'un mot pour la remplacer. En fait est-il possible de la repérer en tant que 1ère lettre ou faut-il la repérer uniquement avec un caractère spécial devant (par exemple un espace)?

    Si j'ai :
    guanine nucleotide-binding regulatory protein-coupled receptor
    Je voudrais récupérer :
    [Gg]uanine[Nn]ucleotide[Bb]inding[Rr]egulatory[Pp]rotein[Cc]oupled[Rr]eceptor
    C'est toujours pour mon histoire d'expressions régulières!

    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Explication du code suivant
    Par dp33 dans le forum Access
    Réponses: 2
    Dernier message: 05/06/2006, 11h45
  2. Explication de code
    Par sacco dans le forum C
    Réponses: 2
    Dernier message: 12/04/2006, 23h13
  3. Explication de code
    Par claralavraie dans le forum Linux
    Réponses: 1
    Dernier message: 20/03/2006, 09h58
  4. Shell - Explication de code
    Par claralavraie dans le forum Linux
    Réponses: 13
    Dernier message: 13/01/2006, 16h03
  5. Explication de code simple
    Par Clad3 dans le forum OpenGL
    Réponses: 3
    Dernier message: 20/03/2005, 11h31

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