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

Bibliothèque standard C Discussion :

Regex et sous partie


Sujet :

Bibliothèque standard C

  1. #1
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut Regex et sous partie
    bonjour,


    cette partie est apparemment reservé au Php mais je ne sais pas trop ou le mettre :s

    je chercher a relever les liens dans une page html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "href *= *\"?([^\" >]*)"
    Sauf que je ne voudrais n'avoir en sorti que l'adresse sans le "href"

    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
     
    void regCompile(regex_t *reg, int *nmatch, const char *maRegexp){
     
    	if (regcomp (reg, maRegexp, REG_EXTENDED) != 0){
    		exit(-1);
    	}
     
    	*nmatch = reg->re_nsub;
    }
     
    void extractLinks(Page *page){
    	regex_t reg;
    	const char *maRegexp = "href *= *\"?([^\" >]*)";
    	int nmatch;
    	int size;
     
    	regCompile (&reg, &nmatch, maRegexp);
     
    	regmatch_t *pmatch = (regmatch_t *)malloc (sizeof(regmatch_t *) *nmatch);
    	if (pmatch == NULL){
    		fprintf(stderr, "Probleme d'allocation memeoire\n");
    	}	
     
    	while(regexec (&reg, page->page, nmatch, pmatch, 0) == 0){
    		size = pmatch[0].rm_eo - pmatch[0].rm_so;
    		appendToList(page->listURL, strndup(&(page->page[pmatch[0].rm_so]) ,size)); /* ce que je récupère */
    		page->page+=pmatch[0].rm_eo;
    	BUG
    	}
     
    }
    en sortie j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    href="http://www.esiee.fr/~givernao/curl/2.html
    href="http://www.esiee.fr/~givernao/curl/3.html
    href="http://www.esiee.fr/~givernao/curl/4.html
    href="http://www.esiee.fr/~givernao/curl/5.html
    Cordialement

    trax

  2. #2
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    Avec cette regexp ça fonctionne mais je ne sais pas pourquoi il faut doubler les (

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    href *= *\"?(([^\"]*))

Discussions similaires

  1. Réponses: 30
    Dernier message: 18/04/2008, 10h21
  2. Recuperer sous partie d'une image
    Par shinji_rem dans le forum VB.NET
    Réponses: 1
    Dernier message: 12/06/2007, 12h14
  3. [Regex ?]Separer la partie numérique d'une chaine
    Par Pahcixam dans le forum Langage
    Réponses: 2
    Dernier message: 25/03/2007, 12h09
  4. [Regex] Recherche sous chaine, debutant
    Par Tekone dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2006, 00h18

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