IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Problème avec RegEx et une Query string


Sujet :

Langage Perl

  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut Problème avec RegEx et une Query string
    Bonjour,

    Supposons que j'ai la string suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var url = "http://localhost/MyWebSite/Diagnostic.aspx:8800?ID=1&AutorefreshPage=1&AutorefreshPage=z5d1a&AutorefreshPage=1&AutorefreshPage=1&AutorefreshPage=5584&AutorefreshPage=dafx&AutorefreshPage=1225aa";
    J'aimerais remplacer tout les instances comportant le mot
    - ?AutorefreshPage
    - ?AutorefreshPage=
    - ?AutorefreshPage=?...?
    - &AutorefreshPage
    - &AutorefreshPage=
    - &AutorefreshPage=?...?
    par une chaîne vide. Voilà ce que j'ai entammé à l'aide des expressions régulières :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    url.replace( /(AutorefreshPage=)([a-zA-Z0-9]+)&/, '' );
    Donc tout ceci devrait me donner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost/MyWebSite/Diagnostic.aspx:8800?ID=1
    Évidemment cela ne fonctionne pas. Il me semble que cette action remplace QUE la première occurence dans la châine. Faut avouer que je ne connais pas grand chose aux expressions régulières Au moins j'aurai essayé...

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    url.replace( /(AutorefreshPage=)([a-zA-Z0-9]+)&/g, '' );

  3. #3
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Un gros merci, j'essais cela

    Et pour ce qui est de cette occurrence là :

    --> "?AutorefreshPage=?...?"

    Elle commence par un "?" tandis que les autres débutent avec un "&".
    Donc, ces trois string doivent être remplacées :
    - "?AutorefreshPage=?...?"
    - "&AutorefreshPage=?...?"
    - "&AutorefreshPage="

    D'où "?...?" représente n'importe quelle caractères acceptés comme valeur dans un QueryString.
    D'où "?" représente le vrai caractère "?"
    D'où "&" représente le vrai caractère "&"

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Je dirais quelque chose dans ce gout....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    url.replace( /(&|?)AutorefreshPage=[a-zA-Z0-9]*(?=(&|$))/g, '' );
    Pour reprendre ta notation, ça enlevera:
    • ?AutorefreshPage=?...?
    • &AutorefreshPage=?...?
    • ?AutorefreshPage=
    • &AutorefreshPage=

    A condition que l'expression soit suivi d'un & qui marque la fin de la variable ou que ce soit la fin de la chaine.

  5. #5
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Merci, exactement ce que je cherchais

    Mais sous Javascrip ça me donne un erreur sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url.replace( /(&|?)AutorefreshPage=[a-zA-Z0-9]*(?=(&|$))/g, '' );
    L'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Unexpected Quantifier
    Je crois que c'est l'expression "(&|?)" qu'il n'aime pas au début.

  6. #6
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Points : 233
    Points
    233
    Par défaut
    Enfin j'ai fini par trouvé seul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var urlCorrection = url.replace( /(\?|&)(AutorefreshPage=)([\w%]+)([^&]|$)/gi, '' );
    Persévérance

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    tag resolu please!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/04/2006, 17h48
  2. [PL SQL] Problème avec 'case' dans une fonction
    Par divail dans le forum Oracle
    Réponses: 14
    Dernier message: 13/03/2006, 15h50
  3. FAQ : problème avec création d'une requete en VBA
    Par Oluha dans le forum VBA Access
    Réponses: 14
    Dernier message: 14/02/2006, 12h05
  4. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo