expression régulière [nouveau problème] - C - Programmation
Marsh Posté le 16-08-2007 à 02:06:56
Bonjour
Après quelques recherches, j'ai trouvé mon fichier regex.h sur une distrib linux mais lorsque je compile , j'obtiens ce message:
Linking console executable: D:\code\jap\test_regexp\console.exe
.objs\main.o:main.c.text+0x51): undefined reference to `regcomp'
.objs\main.o:main.c.text+0x88): undefined reference to `regexec'
.objs\main.o:main.c.text+0x96): undefined reference to `regfree'
.objs\main.o:main.c.text+0xf4): undefined reference to `regerror'
.objs\main.o:main.c.text+0x12b): undefined reference to `regerror'
D'où est ce que cela pourrais venir ??
Marsh Posté le 16-08-2007 à 10:07:10
Digaboy a écrit : |
Il faut lier la bibliothèque correspondante au projet. Je dirais libregex.a, (donc ajouter -lregex à la ligne de commande de l'éditeur de lien) mais c'est un peu au pif...
Je relis ton message et... non ! Tu n'as pas fait ça ? Tu as été copier un .h comme ça venant de nulle part et tu l'as mis sur ta machine ? T'es fou ?
Il faut installer regex sur ta machine, ce qui installera le[s] .h et la bibliothèque qui va bien (et qu'il faura lier avec ton projet).
Par exemple, pour MinGW, il ya un devpak http://devpaks.org/details.php?devpak=67
Sauf indication contraire, un .h est spécifique à un environnement. De plus, il ne contient que l'interface des fonctions (même si parfois on a tout avec les macros et autres inline).
Marsh Posté le 16-08-2007 à 17:49:16
Merci pour ta réponse qui ma permis de résoudre mon problème.
Mais ce qui me parait bizarre c'est que j'avais bien ajouté le fichier libregex.a dans les options de mon linker. Deplus je pensais qu'étant donnée que j'avais le fichier libregex.a, l'ajout d'un fichier regex.h aurait suffit.
Mais passons, voila comment j'ai procédé pour résoudre mon problème :
- installations de Rx1.5 dans Code Blocks
Plugins -> Dev C++ DevPack Update/installer
serveur "devpack.org "
catégorie "String manipulation"
- remplacer #include <regex.h> par #include <rxposix.h>
- Project -> Build Option ->linker
ajouter les fichiers librx.a librx.ddl.a librx.lib
Marsh Posté le 26-08-2007 à 23:12:37
Re - Bonjour
Après quelques manipulations d'expressions régulières, je viens de me heurter à un problème.
J'ai les chaines suivantes:
J'arrive à récupérer sans problème le nom de la team ( Tahise ou SnN) et le numéro de l'épisode mais je n'arrive pas à récupérer le nom de la série.
J'ai résumé plus haut différentes manière de nommer un fichiers( et donc les contraintes que j'ai). il faut savoir: le nom peut être composé, séparé par des _ ou des espaces, ...
Pour récupérer le nom de la team j'ai utilisé la fonction suivante
Code :
|
mais je ne sais pas comment récupérer le nom.
Si vous avez des idées
Marsh Posté le 27-08-2007 à 14:41:26
Salut pour ma part je ferais tout simplement comme ça :
Code :
|
En remplaçant le printf par ce que tu veux (avec une petite condition si tu ne veux pas que ça prenne les _ ou espaces s'il y en a)
Marsh Posté le 29-08-2007 à 21:41:42
a oui c'est pas bête du tout, j'avais tellement la tête dans mes expressions régulières que j'en oublie les bases.
Merci bien
Marsh Posté le 29-08-2007 à 22:13:28
j'ai pas poussé loin le test mais j'avais essayé les regex PCRE en C (viens de perl)
y a dla doc itou itou
Marsh Posté le 04-07-2007 à 20:32:58
Bonjour
Je souhaite pouvoir faire de la vérification de syntaxe en C. Je me suis donc trouné vers le tutoriel suivant http://nicolasj.developpez.com/articles/regex/
Mon problème est le suivant:
Mes questions sont donc les suivantes:
Voila
pS: Je code sous Code Blocks sur Windows XP
Message édité par Digaboy le 26-08-2007 à 23:13:05