expressions régulières

expressions régulières - C - Programmation

Marsh Posté le 05-01-2004 à 15:33:51    

Bijour tout le monde !
 
Voilou, j'aimerais faire un prog sous linux qui lit du texte sur l'entrée standard, et qui me le renvoie avec des mots en gras (que l'on a mis en argument à la ligne de commande).
 
On m'a dit qu'avec des expressions régulières, ça devrait bien passer ...
 
Alors jusqu'à maintenant, j'ai récupéré la liste des arguments, que j'ai mis sous forme d'une liste :  
 
struct reglst {
char *expr; /*expression régulière*/
regex_t re; /*expression régulière compilée*/
struct reglst *next /*maillon suivant*/
}
 
J'ai compilé tout ce beau monde, mais maintenant, je dois lire ligne par ligne sur l'entrée standard et appliquer mes regex pour savoir quoi mettre en gras : comment faire cette dernière étape ???

Reply

Marsh Posté le 05-01-2004 à 15:33:51   

Reply

Marsh Posté le 05-01-2004 à 16:50:02    

tu peux lire les lignes avec fgets/getline
après t'as pas besoin d'expression régulière, juste tu repère le mot, et tu émets des séquences ascii

Reply

Marsh Posté le 05-01-2004 à 17:30:52    

En fait, après vérification, le prog doit être capable de reconnaître des chaines du genre ab*, ou encore abab... (un nombre indéterminé de fois). C'est pour ça que les expressions régulières semblaient bien convenir.

Reply

Marsh Posté le 05-01-2004 à 17:32:20    

quoi semble convenir ...; si y a des expressions régulières ...
ben joue avec l'api de Linux
t'es sur de vouloir faire ça en C ?

Reply

Marsh Posté le 06-01-2004 à 22:10:53    

(en c++ -> boost.regex)


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 06-01-2004 à 23:13:57    

BlackGoddess a écrit :

(en c++ -> boost.regex)

mange boules  :sol:

Reply

Marsh Posté le 06-01-2004 à 23:14:50    

non, mais je regarde les fonctionnalités de boost en ce moment :p
je note qu'il y a rien sur le reseau (sockets) :(


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 06-01-2004 à 23:20:42    

ouaip, je sais bien. C'est ennuyeux, mais y a des trucs quand même qui existent, voir GNUCommonC++ par exemple

Reply

Marsh Posté le 07-01-2004 à 09:26:28    

Tu as la fonction glob qui est bien pratique, mais je ne suis pas sur qu'elle soit standard, elle fait surement partie de la lib GNU.
A+

Reply

Marsh Posté le 07-01-2004 à 09:36:15    

glob c'est pour les fichiers
man regcomp et suivants

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed