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 :

python re.match() et le texte non respect


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Par défaut python re.match() et le texte non respect
    Bonsoire,
    j'ai un texte et je veux déterminer la position ou signaler le segment de ce texte qui est non respecté le pattern re.match()
    par exmple j'utilise le code suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import re
    var1="ab1234"
    chek=re.match("(^[a][b]\d{2})",var1)
    Nom : 44.PNG
Affichages : 105
Taille : 12,5 Ko

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> re.match(r'(ab\d\d)(.*)', 'ab1234')
    <re.Match object; span=(0, 6), match='ab1234'>
    >>> _.groups()
    ('ab12', '34')
    >>>
    Vous avez un tuto. sur l'utilisation des expressions régulières avec Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Par défaut
    Merci beaucoup
    Y a-t-il une solution pour le deuxième exemple?

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut


    On ne peut pas dire que la logique de la construction de l'expression rationnelle soit clairement exprimée dans votre question. La solution que je propose est donc fonction de ce que je crois avoir compris.

    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
    21
    22
    obj_motif = re.compile(r'''
    # (?<=A)B
    # capture B s'il est précédé de A, ne capture pas A
    (?<=ab\d{2})\d{2}
    # capture \d{2} s'il est précédé par ab\d{2}
    | # ou
    (?<=a)\d{1,2}
    # capture \d{1,2} s'il est précédé par a
    ''', re.VERBOSE | re.UNICODE)
     
    texte = "ab1234 a5b12"
     
    iterator = obj_motif.finditer(texte)
     
    for match in iterator:
        print("group = {}, groups = {}, span = {}, start = {}, end = {}".format(
            match.group(), match.groups(), match.span(), match.start(), match.end()))
     
    """
    group = 34, groups = (), span = (4, 6), start = 4, end = 6
    group = 5, groups = (), span = (8, 9), start = 8, end = 9
    """

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Par défaut
    Merci beaucoup danielhagnoul
    oui la solution pour le deuxième exemple est par la l'utilisation de l'expréssion (?<=...)

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

Discussions similaires

  1. Police texte non respecté lors d'un visionnement
    Par Angellman dans le forum Powerpoint
    Réponses: 1
    Dernier message: 12/02/2011, 07h10
  2. texte qui ce répète et Height non respecté sur IE6
    Par Strix dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/04/2007, 16h16
  3. [StringBuffer] Texte non pris en entier
    Par GLDavid dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 07/05/2004, 16h37

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