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 Java Discussion :

Ajouter des guillemets aux URL en html : utilisation de Pattern ?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 20
    Par défaut Ajouter des guillemets aux URL en html : utilisation de Pattern ?
    Bonjour

    J'ai un souci. Je lis des pages html avec un outil Java. Je reçois des URL sans guillemets et je veux rajouter les guillemets, par exemple, chaine d'origine -> chaine modifiée :

    <A href=http://blablabla.com/repertoire target=top><img src=http://blablabla.com/images/point></a>

    <A href="http://blablabla.com/repertoire" target=top><img src="http://blablabla.com/images/point"></a>

    Les points de repères pour l'insertion du premier guillemet sont après "href=" et "src=", et les points de repère pour l'insertion du second guillemet sont avant " " et ">" (espace ou fin de balise).

    Un gourou des expressions régulières pourrait il aider à faire ça avec Pattern ?

    Merci

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est possible avec une expression régulière...
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    		String html = "<A href=http://blablabla.com/repertoire target=top><img src=http://blablabla.com/images/point></a>";
     
    		String result = html.replaceAll(
    			"(href|src)"	// href ou src
    			+ "="			// le signe egal
    			+ "([^\"'\\s]"	// Tout sauf une quote ou un blanc (\s)
    			+ "[^>\\s]*)",	// Tout sauf un > ou un blanc, zero ou plusieurs fois
     
    			"$1=\"$2\""		// $1 = href|src   $2 = valeur
    		);
     
    		System.out.println(result);
    Mais attention : perso je ne te le conseillerais pas.
    Les expressions régulières ne sont pas faite pour çà et çà peut avoir des effets indésirables.

    Je te conseillerais fortement de passer par un parser HTML pour cela.
    Et Jsoup est très bon pour cela : https://jsoup.org/


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	String html = "<A href=http://blablabla.com/repertoire target=top><img src=http://blablabla.com/images/point> </a>";
     
    	Document document = Jsoup.parse(html);
    	String result = document.html();
     
    	// Le parser rajouter les tag <html> et <body> s'ils sont absent.
    	// Si tu ne les veux pas il faut récupérer directement le body :
    	String result = document.body().html();

    a++

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 20
    Par défaut
    Ca fonctionne bien, merci adiGuba. En effet j'ai envisagé Jsoup, mais il n'est pas assez ouvert à mon goût. Je ne me contente pas de parser la structure des tags html de la page et de reconstituer un dom, mais j'ai besoin de poursuivre plus loin l'analyse sur les contenus. Cela ne me coute pas cher de faire comme ça car j'ai un parser généraliste, que je fais fonctionner en deux temps : - structure html - contenus. Il m'a suffi d'ajouter à ma grammaire sur les contenus une grammaire du html, ce que j'ai développé rapidement.

    Merci beaucoup en tous cas pour le truc avec l'expression régulière. Je savais que c'était très puissant, mais je n'en ai pas la pratique.

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

Discussions similaires

  1. VBA Comment ajouter des guillemets
    Par sperchey dans le forum Access
    Réponses: 8
    Dernier message: 15/02/2007, 13h06
  2. [BorderLayout] Comment ajouter des dimensions aux composants ?
    Par jlassiramzy dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 27/12/2006, 14h48
  3. Réponses: 4
    Dernier message: 17/05/2006, 09h21
  4. [HTML] Je doit ajouter des 3D dans mes Email HTML
    Par Higestromm dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 22/03/2006, 17h18
  5. [VB]Ajouter des icones aux boutons de la TOOLBAR
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 08/03/2006, 09h41

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