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

ASP.NET Discussion :

Trouver des balises HTML img avec les regex dans un texte HTML


Sujet :

ASP.NET

Vue hybride

Johann7751 Trouver des balises HTML img... 16/08/2011, 09h56
Invité Bonjour, 1/ étant moi-même... 16/08/2011, 10h13
Invité Ceci devrait faire l'affaire... 16/08/2011, 10h43
Nesmontou Bonjour, Ne vaudrait-il... 16/08/2011, 10h43
Johann7751 Mon but est de modifier... 16/08/2011, 10h45
Invité Dans ce cas, il suffit de... 16/08/2011, 10h58
Johann7751 Je dois d'abord trouver... 16/08/2011, 11h09
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Par défaut Trouver des balises HTML img avec les regex dans un texte HTML
    Je tiens à préciser que ce sujet est dans le forum PHP/Regex par défaut
    En fait je cherche un forum Regex pur.
    Je travaille en C# / ASP.NET.
    Pouvez vous déplacer le sujet si c'est nécessaire ?


    Bonjour

    J'ai besoin d'aide ou de renseignements sur la création d'un regex.

    Ce que je veux :

    Voici ma chaîne de caractères à analyser :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h4 style="text-align: center"><span style="color: #ff0000"><u><em><strong>Le contenu de l'explication&nbsp; B</strong></em></u></span></h4>
    <p>En raison de ....<br />
    C'est <strong>pour </strong>cela qu'il faire attention &agrave; <img alt="" src="http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/angry_smile.gif" />&nbsp;<img alt="" src="http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/cry_smile.gif" />&nbsp;<img alt="" src="http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/thumbs_down.gif" /></p>

    Comme vous pouvez le voir, c'est du HTML.
    Dans ce HTML, je veux trouver toutes les chaînes correspondant aux balises image.

    Donc dans mon regexp, les règles sont :
    1) chaîne commençant par "<img".
    2) chaîne finissant par "" \>" ou juste "\>" à la limite
    3) N'importe quelle chaîne entre les deux (alphanumerique, espace, caractère spéciaux TOUT !!)
    A priori, c'est assez simple mais j'y arrive pas.

    Là en l’occurrence dans ma chaîne d'exemple, le regex doit trouver 3 résultats.


    => Comment écrire mon regexp ?
    => Pouvez vous m'expliquer comment dans le langage regex, comment on dit n'importe quelle chaîne ? (je sais que le . c'est n'importe quelle caractère, mais comment dis-t-on n'importe quelle chaîne ?)

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ étant moi-même une bille en regex, je t'invite à faire comme moi et à lire ce tuto : Initiation aux expressions régulières en PHP

    2/ que cherches-tu à faire ?
    - supprimer les images ? (balises et contenu)
    - récupérer tout le contenu des balises ?
    - récupérer uniquement les noms des images ?
    - autre ... ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ceci devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $subject = '
    <h4 style="text-align: center"><span style="color: #ff0000"><u><em><strong>Le contenu de l\'explication&nbsp; B</strong></em></u></span></h4>
    <p>En raison de ....<br />C\'est <strong>pour </strong>cela qu\'il faire attention &agrave; <img alt="" src="http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/angry_smile.gif" />&nbsp;
    <img alt="" src="http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/cry_smile.gif" />&nbsp;<img alt="" src="http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/thumbs_down.gif" /></p>
    ';
     
    $pattern  = "#<img(.*)/>#Ui";
        if(preg_match_all($pattern, $subject, $matches))
        {
            echo "Oui :<br /><pre>";
    		print_r($matches);
    		echo "</pre>";
        }
    ?>

  4. #4
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour,

    Ne vaudrait-il pas mieux utiliser DOM dans ce cas : http://www.php.net/manual/fr/book.dom.php ?

  5. #5
    Membre éclairé Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Par défaut
    Mon but est de modifier l'attribut "src" des balises HTML image, afin de les afficher correctement sur mon site de production.

    Exemple :

    "http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/angry_smile.gif"

    doit devenir :

    "http://static.images.monsite.com/content/images/1/Explanations/angry_smile.gif"

    Donc plus précisément mon but est :
    Trouver toutes les chaînes correspondantes à l'attribut src des balises images.
    Le résultat de la recherche dans le texte que j'ai mis en exemple serait donc :

    "http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/angry_smile.gif"
    "http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/cry_smile.gif"
    "http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/thumbs_down.gif"

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Johann7751 Voir le message
    "http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/angry_smile.gif"
    doit devenir :
    "http://static.images.monsite.com/content/images/1/Explanations/angry_smile.gif"
    Dans ce cas, il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    	$src_avant = 'http://localhost:2302/WebSiteCarblocksUpdator/fckeditor/editor/images/smiley/msn/';
    	$src_apres = 'http://static.images.monsite.com/content/images/1/Explanations/';
    	$subject2 = str_replace('src="'.$src_avant, 'src="'.$src_apres, $subject);
    ?>
    non ?

  7. #7
    Membre éclairé Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Par défaut
    Je dois d'abord trouver toutes les chaînes src des balises images puis, oui, après je fais un Replace.
    Mais en fait mon but de ce sujet c'est vraiment de trouver le pattern du regex qui me permet de trouver ce que j'ai énoncé.
    Indépendamment du langage de programmation, juste le pattern.

    (Tu m'écris du code en PHP, je suis une bille dans ce langage, je code en C# / ASP.NET)

  8. #8
    Invité
    Invité(e)
    Par défaut
    #<img(.*)/>#Ui

    explication :
    # -> (délimiteurs) début et fin de regex
    <img -> commence par ...
    (.*) -> n'importe quel caracteres ...
    /> -> finit par ...
    U -> (modificateur) "Ungreedy", c'est-à-dire non gourmand. Cela signifie que l'expression trouvera des résultats aussi petits que possible.
    i -> (modificateur) Permet de ne pas tenir compte de la casse

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

Discussions similaires

  1. [XHTML 1.0] Balise img avec les attributs class ou id
    Par Touty11 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 23/04/2012, 11h53
  2. [MySQL] Afficher les données dans un tableau html horizontal avec une seule requête au lieu de 6
    Par arthuro45 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/10/2010, 11h13
  3. [RegEx] Extraction des mot dans un paragraph avec les REGEX
    Par geforce dans le forum Langage
    Réponses: 0
    Dernier message: 29/03/2010, 18h58
  4. [HTML] Problème avec les options de la balise <p>
    Par Balflear dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 22/06/2006, 10h48
  5. Position des balises H2 ou comment les numéroter
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/07/2003, 19h24

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