Perl split et les textes fraco

Résolu/Fermé
Salem7 - 26 janv. 2009 à 02:35
 Salem7 - 26 janv. 2009 à 20:41
Bonjour,
je suis linguiste et assez débutante merci en Perl...
J'ai un problème avec la fonction 'split'.
Je cherche à séparer un texte en mots et à rechercher l'occurrence de certains mots. Par exemple, je voudrais pouvoir rechercher les articles définis (le, la, les, l'). Le problème est dans la division du texte en mots, j'arrive à utiliser
@mots = (split/ /, $ligne);
mais cette fonction ne me permet pas de découper des séquences telles: l'uranium.
Je sais qu'il est possible de spécifier plusieurs délimiteurs avec la fonction 'split', mais je n'arrive pas à spécifier l'espace et l'apostrophe.
Quelqu'un peut me donner un coup de main, SVP???
Merci à l'avance

1 réponse

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 janv. 2009 à 06:45
Salut,

Tu peux séparer les mots, mais tu peux récupérer seulement les articles.
Voici une exemple qui peut être ne t'aidera as trop.
Pour une solution adéquate il faut connaître le texte d'entrée et aussi les résultats désirés
lami20j@debian:~/trash$ cat ccm1_split.pl
#!/usr/bin/perl
use strict;use warnings;

my $ligne="le cahier la table l'uranium les fleurs";
my @mots = split /[\s']/,$ligne;            # liste de mots
my @articles = $ligne =~ /\b(l[ea]?s?)\b/g; # que les articles

print "$ligne\n";
print "$_\n" for @mots;
print "*" x 30 ,"\n";
print "$_\n" for @articles;
__END__
lami20j@debian:~/trash$ perl ccm1_split.pl
le cahier la table l'uranium les fleurs
le
cahier
la
table
l
uranium
les
fleurs
******************************
le
la
l
les
2
Merci, tu fais ma journée!
Je me rends compte que ma seule erreur était de ne pas avoir utilisé les crochets ([]) en utilisant *split*.

1ère question dans ce forum et une réponse en moins de 24h, vive la technologie!!! Et bien entendu, vive les âmes charitables prêtes à partager leur savoir!
Merci encore!
0