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

Collection et Stream Java Discussion :

Expression régulière mail


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2007
    Messages : 126
    Par défaut Expression régulière mail
    Bonjour,

    je voudrais faire une expression régulière qui me permettrait d'avoir tous les liens d'une page internet, sachant qu'on peut avoir les différents liens suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <a href="http://www.monsite.fr">
    <a href="http://www.monsite.fr" >
    <a href=http://www.monsite.fr >
    <a href=http://www.monsite.fr>
    <a href=http://www.monsite.fr class="footer">
    <a href="http://www.monsite.fr" class="footer">
    J'ai crée une expression régulière mais lle ne marche pas tous le temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     	String url;
        	String toto ="href=\"http://www.monsite.fr/eden-p-110.html\"";
        	Pattern patternMBody = Pattern.compile("href=['\"]{0,1}(.*?)[['\"]{0,1}[>]{0,1}]",Pattern.CASE_INSENSITIVE);
        	Matcher mMBody = patternMBody.matcher(toto);
        	while (mMBody.find()) {
     
        	    System.out.println(mMBody.group(1));
     
        	}
    Avec mon expression régulière et le lien précédent, j'obtient http://www.monsite.fr/eden-p-, il manque la fin du lien....

    Merci pour vos idées et votre aide.

  2. #2
    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
    Bonjour ... enfin, Bonsoir
    Voici ton bonheur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String patternString="href=\"?'?([^\"'\\s]*)\"?'?";
    ça prend aussi en charge les urls du type href='xxxxx' avec des simples quotes en plus des doubles.

    Autre chose: Tu utilises fréquemment le {0, 1}. Juste pour info, c'est strictement equivalent à ?.

    Bonne chance.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2007
    Messages : 126
    Par défaut
    Salut,

    merci pour la rapidité de ta réponse.

    C'est vrai que j'utilise souvent le {0, 1}, j'ai lu sur un site que c'était mieux si le pattern ne contient qu'un seul caractère,.. mais bon je viens de faire des tests et c'est vrai que c'est pareil...

    Ou sinon je viens de trouver un nouveau cas de lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="http://www.monsite.fr"/>
    <a href="http://www.monsite.fr" />
    Donc j'ai essayé de modifier ton code par conséquent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String patternString="href=\"?'?([^\"'\\s]*)\"?'?/?";
    J'ai juste ajouté le slash à la fin, mais pour <a href=http://www.monsite.fr/> on obtient http://www.monsite.fr/>

    De plus , pour un lien du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href=http://www.monsite.fr>
    , on obtient donc j'ai ajouté >? à la fin de ton pattern mais là encore ça ne marche.

    Merci pour les conseils.

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/08/2009, 11h42
  2. Expression régulière adresse mail
    Par nannous dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 22/07/2009, 12h17
  3. expression régulière pour l'envoi de mail
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2008, 11h18
  4. expressions régulières mail
    Par minie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2007, 09h16
  5. [RegEx] Expressions régulières : problème avec e-mail
    Par webrider dans le forum Langage
    Réponses: 7
    Dernier message: 28/08/2006, 10h30

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