Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

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.

> Lire le message (5 commentaires, moyenne: 1,8).  

Vous avez demandé le commentaire #830985.

négation et ensemble de caractères

Posté par Sisyphe Plâtrier () le 10/05/2007 à 19:49. (lien). Évalué à 2.

$chaine =~ s/[^0-9()]+//g
devrait le faire...

Eqça.

  • [^]Re: négation et ensemble de caractères

    Posté par Jacques L'helgoualc'h (page perso, ) le 11/05/2007 à 07:30. (lien). Évalué à 3.

    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

    Posté par meta () le 11/05/2007 à 23:54. (lien). Évalué à 1.

    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

      Posté par calimo () le 18/05/2007 à 14:43. (lien). Évalué à 2.

      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.