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 : regular expressions


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2018
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 24
    Par d�faut regex : regular expressions
    Bonjour,

    Dans le but de filtrer un fichier texte j'ai essay� de comprendre la fonction regex mais malheureusement j'arrive pas � faire ce que je veux exactement, en fait mon texte contient des valeurs que je veux les r�cup�rer mais il contient aussi d'autre symboles exemple ( " ' [ \\ ), des lettres, des espace et des retours � la ligne donc je veux r�cup�rer que les valeurs mais je veux garder le point et la virgule.
    voici mon fichier
    f1.txt

    et mon code

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    import re
    regex = re.compile("^*([0-9][0-9,.]*)$")
    with open(r'C:\Users\admin\Desktop\projet M2\181127\regex\regex.txt', 'r+') as fs:
        with open(r'C:\Users\admin\Desktop\projet M2\181127\regex\regex2.txt', 'w') as f2:
            for line in fs:
                m=regex.search(line)
                if m:
                    f2.write(line)
    Merci d'avance

  2. #2
    Membre tr�s actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par d�faut
    Salut.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    >>> import re
    >>> s = """['-10', '-4', " -5'", ' -2.5', '2,54']"""
    >>> regex = re.compile('-?\d+(?:(?:,|\.)\d+)?')
    >>> re.findall(regex, s)
    ['-10', '-4', '-5', '-2.5', '2,54']

    -? signifie le caract�re - optionnel
    \d+ un chiffre une fois ou plus
    le (?: signifie que l'on ne souhaite pas capturer cette parenth�se

    (?:,|\.) ici, donc une parenth�se non capturante contenant (le pipe) soit la virgule soit le point (que l'on doit �chapper, car c'est un m�ta-caract�re).

    (?:(?:,|\.)\d+)? On en arrive � 2 parenth�ses non-capturantes ou un ou plusieurs chiffres suivent un point ou une virgule, le tout �tant optionnel (?).

    Mais, tu aurais sans doute pu faire cela depuis ta cha�ne sans exp. r�g. en construisant une liste et appliquant des str.split et str.strip.

  3. #3
    Membre averti
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Novembre 2018
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Responsable de compte

    Informations forums :
    Inscription : Novembre 2018
    Messages : 22
    Par d�faut
    Re,

    Essaye ce site, c'est super bien expliqu� avec un glossaire pour chaque fonction. https://regex101.com

    Tu s�lectionne python, tu colles ton texte dans "test tring" et tu essaye les expressions.

    J'arrive avec cette expression

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ^\[' -?[0-9]*.[0-9]'.?,( .-?[0-9]*.?[0-9]'.?,)*

  4. #4
    Expert confirm� Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par d�faut
    salut,

    Citation Envoy� par bistouille Voir le message
    (?:(?:,|\.)\d+)?
    on peut m�me simplifier la deuxi�me parenth�se (?:[,.]\d+)?

  5. #5
    Membre tr�s actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par d�faut
    En effet, c'est mieux

Discussions similaires

  1. Cobol Regex (REGular EXpression)
    Par rockley dans le forum Cobol
    R�ponses: 11
    Dernier message: 29/01/2015, 15h40
  2. Regular Expression (Regex) syntax avec C#.NET
    Par paca_mike dans le forum C#
    R�ponses: 4
    Dernier message: 24/03/2009, 21h54
  3. [debutant] Regular Expression
    Par absolut75 dans le forum Collection et Stream
    R�ponses: 5
    Dernier message: 13/06/2006, 01h43
  4. [RegEx] Empty regular expression
    Par Khrysby dans le forum Langage
    R�ponses: 2
    Dernier message: 24/04/2006, 22h25
  5. [Regular Expressions] Num�rotation romaine
    Par ramalho dans le forum Valider
    R�ponses: 3
    Dernier message: 24/02/2004, 17h43

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