OVH Cloud OVH Cloud

Compter le nombre de mots dans une phrase ?

14 réponses
Avatar
nimzo
Bonjour à tous,

je veux compter combien il y a de mots dans chaque phrase d'un texte.

Je n'arrive pas a construire une expression régulière pour le faire.

Comment compter le nombre de mots entre les deux points qui délimitent
la phrase ?

Je n'ai pas besoin de tenir compte des cas spéciaux (ex. phrase qui se
termine par ...)

Quelqu'un pourraît-il m'aider?

Je suis pas mal nouveau avec Perl !

Merci

Gilles

4 réponses

1 2
Avatar
dominix
dominix" <dominix"at wrote:

qui dit mieux ?


moi
perl -n00laF'.' -e 'END{for(@F){print $x=()=/S+/g}}' txt

:-))

--
dominix
s&&rsexinimodreve&&&s&x.+d&"$'$`$"$&"&ee&&y&srve&&d&&print

Avatar
root
On Thu, 08 Jan 2004 15:20:31 -1000, dominix wrote:

je repete "entre les deux points qui délimitent la phrase"


cat txt
Correcteur 101 a vu le jour comme correcteur grammatical en
octobre 1992. On l'a baptisé ainsi à cause de la loi 101
instaurée au Québec pour préserver la langue française. La
version 3 du Correcteur 101 est disponible depuis décembre
1996. Sa mission s'est élargie pour devenir davantage celle
d'un outil d'aide à l'écriture. Grâce à de nouvelles
fonctions, chaque utilisateur peut choisir le type de
correction en fonction de son niveau de connaissance ou du
genre de document qu'il produit. On a aussi standardisé
l'interface du Correcteur 101 pour PC et Mac.
pastis tmp #
pastis tmp # perl -n00laF'.' -e 'END{for(@F){print $x=()=/S+/gsm}}' txt
12

18

11

13

27

12

pastis tmp #

qui dit mieux ?


Aïe... je pensais qu'il avait déjà fait son découpage des phrases...
parce que j'avais pas envie de tomber dans le problème de :

$ echo "Phrase version v1.0 est disponible aujourd'hui." | perl -n00laF'.' -e 'END{for(@F){print $x=()=/S+/gsm}}'

3

4

Alors qu'en fait on a qu'une seule phrase...

Avatar
dominix
root wrote:
On Thu, 08 Jan 2004 15:20:31 -1000, dominix wrote:

je repete "entre les deux points qui délimitent la phrase"


cat txt
Correcteur 101 a vu le jour comme correcteur grammatical en
octobre 1992. On l'a baptisé ainsi à cause de la loi 101
instaurée au Québec pour préserver la langue française. La
version 3 du Correcteur 101 est disponible depuis décembre
1996. Sa mission s'est élargie pour devenir davantage celle
d'un outil d'aide à l'écriture. Grâce à de nouvelles
fonctions, chaque utilisateur peut choisir le type de
correction en fonction de son niveau de connaissance ou du
genre de document qu'il produit. On a aussi standardisé
l'interface du Correcteur 101 pour PC et Mac.
pastis tmp #
pastis tmp # perl -n00laF'.' -e 'END{for(@F){print
$x=()=/S+/gsm}}' txt 12

18

11

13

27

12

pastis tmp #

qui dit mieux ?


Aïe... je pensais qu'il avait déjà fait son découpage des phrases...
parce que j'avais pas envie de tomber dans le problème de :

$ echo "Phrase version v1.0 est disponible aujourd'hui." | perl
-n00laF'.' -e 'END{for(@F){print $x=()=/S+/gsm}}'

3

4

Alors qu'en fait on a qu'une seule phrase...


il n'y aurait qu'a changer le pattern du split
echo "Phrase version v1.0 est disponible aujourd'hui." |
perl -n00l -e '@F=split(/. /,$_,0);
END{for(@F){print $x=()=/S+/gsm}}'

--
dominix
s&&rsexinimodreve&&&s&x.+d&"$'$`$"$&"&ee&&y&srve&&d&&print


Avatar
Gilles
Merci Dominix, c'est ce que je cherchais à accomplir.

Gilles

dominix wrote:
root wrote:

...

il n'y aurait qu'a changer le pattern du split
echo "Phrase version v1.0 est disponible aujourd'hui." |
perl -n00l -e '@F=split(/. /,$_,0);
END{for(@F){print $x=()=/S+/gsm}}'



1 2