Forum Programmation.perl expression rationelle conditionnelle

Posté par  .
Étiquettes : aucune
0
27
août
2008
bonjour,

je suis sur que c'est possible en Perl,
j'aimerais contruire une expression rationnelle pour substituer selon une condition

je voudrais modifier un url et lui rajouter un argument à la fin, donc si l'url source a deja des argument, je rajoute &arg=truc, si elle n'en a pas , je rajoute ?arg=truc

Je n'est aucun probleme a matcher si il y a des argument ou pas, mais apres... comment faire en une seule condition rationnelle ?

je vous remercie d'avance .
  • # Commentaire supprimé

    Posté par  . Évalué à 2.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # ben, en plusieurs lignes

    Posté par  (site web personnel) . Évalué à 3.

    if (m/&machin/) {
    s/truc/&bidule=chose/ } else {
    s/truc/?bidule=chose/}

    De toute façon, je pense qu'utiliser s///e ne ferait que la même chose car dans le remplaçant, tu devrais reparser toute la ligne pour faire ta décision...

    Sinon, sans doute y a t-il moyen d'utiliser du gruik, mais de mémoire, le manuel de perl ne recommande pas trop les "regexps" trop siouxes (genre "turing completes").
  • # sans condition

    Posté par  (site web personnel) . Évalué à 2.

    Yaka systèmatiquement réécrire le « ? ».

    $ echo -e 'foo\nfoo?bar' | perl -pe's/(\?|$)(.*)/?bla&$2/'

    ou même

    $ echo -e 'foo\nfoo?bar' | perl -pe's/(\?|$)(.*)/?$2&bla/'

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.