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

C Discussion :

les expressions régulieres en c


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Par défaut les expressions régulieres en c
    bonjour
    j'effectue un traitement sur un fichier contenant des ligne de ce genre
    X Y Z W
    chaque élément X,Y,Z,W a une taille non fixe que je veux c'est extraire les élément X Z y a t'il une façon pour faire sa avec des fonction de c merci d'avance

  2. #2
    Membre averti
    Profil pro
    Développeur C#, Python, dans la carte à puce
    Inscrit en
    Mars 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C#, Python, dans la carte à puce
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 46
    Par défaut
    Bonjour,

    Peut-être ce tutoriel peut-il t'aider :
    http://nicolasj.developpez.com/articles/regex/

    Il m'avait bien aidé dans le temps pour écrire une application gérant des expressions régulières.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Par défaut merci
    Citation Envoyé par gwenBZH Voir le message
    Bonjour,

    Peut-être ce tutoriel peut-il t'aider :
    http://nicolasj.developpez.com/articles/regex/

    Il m'avait bien aidé dans le temps pour écrire une application gérant des expressions régulières.
    merci mon ami ai d'une premier vus je ne ense pas qy'elle me permetra de extraire X Z

  4. #4
    Membre averti
    Profil pro
    Développeur C#, Python, dans la carte à puce
    Inscrit en
    Mars 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C#, Python, dans la carte à puce
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 46
    Par défaut
    Je n'ai peut-être pas bien compris ton problème, mais il me semble bien que tu arriveras à faire ce que tu veux avec ces fonctions.

    Si chaque élément X, Y, Z, W sont séparés pas des espaces (et n'en comportent pas) ou autre séparateur, des simples opérations de lecture de fichier et d'opérations sur les chaînes de caractères peuvent résoudre tes problèmes.
    (Dans tous les cas, il faudra que tu lises le fichier de toute manière)
    Ce tuto pourra t'aider :
    http://melem.developpez.com/langagec/fichiersc/

    Si les éléments sont plus complexes, je ne vois pas trop comment se passer des expressions régulières.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 88
    Par défaut je reformule mon problemme
    Citation Envoyé par gwenBZH Voir le message
    Je n'ai peut-être pas bien compris ton problème, mais il me semble bien que tu arriveras à faire ce que tu veux avec ces fonctions.

    Si chaque élément X, Y, Z, W sont séparés pas des espaces (et n'en comportent pas) ou autre séparateur, des simples opérations de lecture de fichier et d'opérations sur les chaînes de caractères peuvent résoudre tes problèmes.
    (Dans tous les cas, il faudra que tu lises le fichier de toute manière)
    Ce tuto pourra t'aider :
    http://melem.developpez.com/langagec/fichiersc/

    Si les éléments sont plus complexes, je ne vois pas trop comment se passer des expressions régulières.
    supposon que on a une chaine la suivante "X Y Z W" comment faire pour extraire les X et le Z

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut
    Citation Envoyé par selmani300 Voir le message
    supposon que on a une chaine la suivante "X Y Z W" comment faire pour extraire les X et le Z
    Tu pourrais très bien coder le parser toi-même, ce n'est pas très compliqué. Tiens, c'est un truc dans le genre que tu veux ?
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #include <stdlib.h>
    #include <string.h>
    #include <stdio.h>
    #include <ctype.h>
     
    #define BUF_SIZE 256
     
    typedef unsigned int uint_t;
     
    void tokenize(char buf[BUF_SIZE][BUF_SIZE], const char *str) {
        size_t len = strlen(str);
        uint_t i = 0;
        uint_t cur_token = 0;
        uint_t cur_c = 0;
        for(i = 0; i < len; ++i) {
            if(isspace(str[i]) && !isspace(str[i + 1])) {
                ++cur_token;
                cur_c = 0;
            } else if(!isspace(str[i])) {
                buf[cur_token][cur_c] = str[i];
                ++cur_c;
            } else {;}
        }
    }
     
    int main(void) {
        const char *foo = "So  I heard          you   liek    mudkipz.";
        char buf[BUF_SIZE][BUF_SIZE] = {{0}};
        uint_t i = 0;
        tokenize(buf, foo);
        for(i = 0; i < 8; ++i) {
            printf("buf[%u]: '%s'\n", i, buf[i]);
        }
     
        return EXIT_SUCCESS;
    }
    Ce qui va dans ce cas-ci afficher:
    buf[0]: 'So'
    buf[1]: 'I'
    buf[2]: 'heard'
    buf[3]: 'you'
    buf[4]: 'liek'
    buf[5]: 'mudkipz.'
    buf[6]: ''
    buf[7]: ''

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

Discussions similaires

  1. [RegEx] Question sur les expressions régulieres
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2010, 00h41
  2. Besoin d'aide pour les expressions régulieres
    Par brahim94 dans le forum Langage
    Réponses: 3
    Dernier message: 24/08/2009, 09h31
  3. compiler les expressions régulieres ou pas?
    Par giova_fr dans le forum Débuter
    Réponses: 1
    Dernier message: 10/10/2008, 00h11
  4. [RegEx] les expression régulieres dans php
    Par stive8063 dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2008, 10h21
  5. aide sur les expressions régulieres
    Par STEPH69000 dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2006, 17h54

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