Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb expression régulière

2 réponses
Avatar
ChessManiac
Hello

Je n'arrive pas à résoudre le problème suivant :
je parse des lignes qui contiennent le pattern suivant :

fsd ou bien
ilpi .titi ou encore
sf.fqsf. zrzeg ...

i.e. des mots séparés par des points (il peut y avoir
des espaces entre mot et point)

Mon problème est de récupérer le dernier mot.
J'ai essayé sans succès :

if ( @_ =~ /(\w+\s*\.\s*)*(\w+)/ ) {
$DernierMot = $2;
}

Merci d'avance pour toute aide!

2 réponses

Avatar
Jacques Noël
Je n'arrive pas à résoudre le problème suivant :
je parse des lignes qui contiennent le pattern suivant :

fsd ou bien
ilpi .titi ou encore
sf.fqsf. zrzeg ...

i.e. des mots séparés par des points (il peut y avoir
des espaces entre mot et point)

Mon problème est de récupérer le dernier mot.
J'ai essayé sans succès :

if ( @_ =~ /(w+s*.s*)*(w+)/ ) {
$DernierMot = $2;
}


Bonjour
Est ce que (w+$) ne convient pas ?

Jacques Noël

Avatar
Benoit Izac
Bonjour,

le 30/12/2004 à 10:24, ChessManiac a écrit
dans le message <FSPAd.8282$ :

Je n'arrive pas à résoudre le problème suivant :
je parse des lignes qui contiennent le pattern suivant :

fsd ou bien
ilpi .titi ou encore
sf.fqsf. zrzeg ...

i.e. des mots séparés par des points (il peut y avoir
des espaces entre mot et point)

Mon problème est de récupérer le dernier mot.
J'ai essayé sans succès :

if ( @_ =~ /(w+s*.s*)*(w+)/ ) {
$DernierMot = $2;
}


% echo 'fsd
ilpi .titi
sf.fqsf. zrzeg' | perl -lne 'print "$2" if /(w+s*.s*)*(w+)/'
fsd
titi
zrzeg

Le résultat est correct.
Si tu veux juste le dernier mot, le plus simple est :
perl -lne 'print "$1" if /(w+)$/'

--
Benoit Izac