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

avec Java Discussion :

Methode Parser String


Sujet :

avec Java

  1. #1
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut Methode Parser String
    Bonjour,

    Voila, je pars d'une url google telle : "http://www.google.fr/search?hl=fr&q=test1+test2&meta=cr%3DcountryFR"

    Je voudrais récupérer les keywords, qui apparement suivent le "q=" dans l'url.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String url = "http://www.google.fr/search?hl=fr&q=test1+test2&meta=cr%3DcountryFR";
    if (url.matches("http://www.google.*")){
      String[] keywords = url.split("/");
      keywords = keywords [3].split("q=");
      keywords = keywords[1].split("&");
      keywords = keywords[0].split("\\+");
      }
    J'ai donc split plein de fois, ce que je trouve très moche.

    Je voulais donc savoir si vous connaissiez une méthode permettant de récupérer une chaine fournit par une expression réguliere :p.

    Merci!

    S.

  2. #2
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    StringTokenizer peut etre ...

    http://java.sun.com/j2se/1.4.2/docs/...Tokenizer.html

    regarde sur le forum il y a moult exemples de son utilisation

  3. #3
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Citation Envoyé par SrK Voir le message
    Je voulais donc savoir si vous connaissiez une méthode permettant de récupérer une chaine fournit par une expression réguliere :p.
    Ben oui... l'expression régulière ?... (je comprends pas la question). À toutes fins utiles va voir java.util.regex

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Voir l'excellent cours d'introduction au RegExp d'Hugo Etiévant http://cyberzoide.developpez.com/java/regex/

  5. #5
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    Oki, merci pour vos réponses.

    Perso j'avais utilisé Pattern pour créer mon expression régulière puis Matcher pour récupérer les résultats et enfin un Split pour avoir chaque keyword.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Pattern p = Pattern.compile("q=(.+)&");
    Matcher m = p.matcher(url);
    m.find();
    String[] keywords =  m.group(1).split("\\+");
    J'venais de trouvé quand je vois que vous avez répondu xD

    @jojodu31 : les StringTokenizer ca a pas l'air de trop correspondre à mes besoins, enfin j'ai peut être pas bien compris le fonctionnement.

    @gifffftane, en fait je voulais faire ca par des expr régulieres mais je ne savais pas par quel classes passées ! ( donc Pattern et Matcher )

    @djo.mos: Je viens de jetter un coup d'oeil sur le tuto, et effectivement il a l'air tres bien fait! ( surtout pour un rappel sur les bases des expr régulieres, je galere toujours dessus )

    Cependant, je me demande si c'est pas possible de réccupérer en une fois mon résultat ?
    Peut être une expr réguliere plus complete ?
    Utilisation d'un délimiteur avec matcher ou quelque chose du genre ?

  6. #6
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    J'ai beau réfléchir, je me dis qu'une expression régulière plus complète n'est pas réellement possible dans mon cas.

    Car on devrait spécifier le début "q=" pour la première occurrence, mais la deuxième occurrence ne commencerait pas par "q=" donc impossible ?

    Et pour une méthode regroupant le matcher et le split, j'ai pas l'impression que ca existe.

    Est ce que je me prend la tete pour rien ?

    Merki

    S.

  7. #7
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    pas de réponses, alors je suppose que c'est la meilleure solution ^^

    Résolu !

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 18/02/2009, 18h53
  2. Réponses: 1
    Dernier message: 19/11/2008, 17h47
  3. Parser String négatif to int
    Par skyangel dans le forum Langage
    Réponses: 3
    Dernier message: 25/03/2008, 11h56
  4. Réponses: 2
    Dernier message: 23/01/2006, 15h51

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