Programmation.perl : expression rationnelle particuliere
Posté par meta () le 10 mai 2007
bonjour,
je voudrais enlever tous les caracteres non alpha-numriques en debut de chaine SAUF les parentheses.
Comment cela est-il possible ?
$chaine =~ s/\W+//g permet d'enlever ces caracteres non alpha-numriques , mais comment ignorer les parentheses ?
merci de vos reponses.
je voudrais enlever tous les caracteres non alpha-numriques en debut de chaine SAUF les parentheses.
Comment cela est-il possible ?
$chaine =~ s/\W+//g permet d'enlever ces caracteres non alpha-numriques , mais comment ignorer les parentheses ?
merci de vos reponses.
> Lire le message (5 commentaires, moyenne: 1,8).
Vous avez demandé le commentaire #830985.



négation et ensemble de caractères
$chaine =~ s/[^0-9()]+//g
devrait le faire...
Eqça.
[^]Re: négation et ensemble de caractères
Plutôt
$chaine =~ s/^[^[:alnum:]()]+//
pour ne détruire qu'au début de la ligne.
Pas de signature
[^]Re: négation et ensemble de caractères
merci de ta reponse, c plutot evident : $chaine =~ s/[^\w()]+//g ou $chaine =~ s/[^a-zA-Z0-9()]+//g , neanmoins , le probleme c'est que des caracteres tel que 'é' ou 'ç' ne font pas partis des caracteres alphanumeriques, alors que, en France, ce pourait etre pratique...
[^]Re: négation et ensemble de caractères
Eh oui, perl ne fait pas dans l'unicode par défaut !
Un petit use utf8 en début de script devrait faire l'affaire ;-)
Voir http://perldoc.perl.org/utf8.html pour plus de détails (normalement il suffit de faire use utf8, ne te tracasse pas avec le reste pour un usage normal).
PS : évidemment il faut que les données soient en utf-8.