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

L'expression correcte


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Points : 23
    Points
    23
    Par défaut L'expression correcte
    pour une chaine = "<html>aaa</html>bbb"

    si on veu extraire les tags html voici l'expression réguliaire qui va recuperer tout les tags : (<.*?>) , ce qui donne : <html></html>

    moi j'aimerai bien avoir le contraire , je veu pas extraire les tags mais extraire ce qui est entre les tags
    dans mon exemple le resultat doit etre : aaa bbb

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Si tu peux modifier ta chaine ,tu en extrais les tags , tu suprime les tag extrais de ta chaine et tu as ton résultat
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Ce n'est pas un problème HTML, merci donc de te diriger vers le langage que tu utilisent pour les expressions régulières.
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    le sujet à été deplacé ici par un admin

    en tout cas peu importe le langage utilisé , une fois j'ai la bonne expression je peu l'utilise avec n'importe kel langage ,

    pour la premiere reponse , oui je peu extraire les tags et par la suite parcourir la chaine pour les enlever , mais moi j'ai besoin de connaitre l'expression inverse , (c'est purement educatif)

  5. #5
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Tu ne pourras pas le faire avec un expression rationnelle simple ; il faudrait que tu construises un automate puis que tu passes à l'expression rationnelle associée, étant donné que tu dois effectuer des différences.
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Bien sûr que c'est faisable et le sujet n'a rien à faire dans la section HTML, je le répète !
    Maintenant c'est tout à fait faisable avec des expressions régulières, il suffit de rechercher le pattern correspondant et de prendre ce qui se trouve à l'intérieur...
    http://php.developpez.com/cours/#langage-regexes
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  7. #7
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Perso je ferais un truc du genre:
    en récupérant l'occurence entre parenthèses par le $1. Mais je suis loin d'être spécialiste en regexp...

    Comme l'a relevé Blueice, ton poste redirigé sur ce forum est une erreur. Tu devrais être redirigé sur un forum de programmation surlequel les regexp sont utilisées. Tu auras plus de réponses là-bas.

    Tu souhaites traiter côté php, javascript,...? On peut redéplacer ton message sur le forum correspondant..
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et si c'est le cas

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Candygirl
    Perso je ferais un truc du genre:
    Tu souhaites traiter côté php, javascript,...? On peut redéplacer ton message sur le forum correspondant..
    l'expression que tu vien de proposer ne marche pas

    je suis daccord de deplacer le sujet dans la rubrique php

  9. #9
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 51
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Citation Envoyé par UN|X`
    l'expression que tu vien de proposer ne marche pas
    Qu'entends-tu par ne marche pas?

    Perso je suis partie du principe qu'on prenait tout texte qui se trouve entre les signes > et < il est vrai que, pour que ton exemple passe, j'aurais du mettre le < final en option en ajoutant le ?:

    Je te mets un petit test en javascript (c'est ma seule expérience des regexp):

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    st="<html>aaa</html>bbb"
    var mon_tab = st.match(/>([^<]+)<?/gi);
    alert(RegExp.$1);
    for (var i=0; i<mon_tab.length;i++){
    	document.write(mon_tab[i]+'<br />');
    }

    Le problème c'est que je ne sais pas comment récupérer avec le match un tableau directement avec les $1 et pas avec le < > inclus (j'ai juste mis le dernier en alerte que tu voies que le $1 renvoie bien la chaîne voulue).

    Bref comme je l'ai dit j'ai des compétances bien limitées et partielles en la matière

    Je déplace donc sur les forums php
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et si c'est le cas

  10. #10
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    et pourquoi tu ne fais pas un strip_tags ??
    Ou a la limite (pour conserver les espaces) faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#<[^>]+>#', ' ', $texte);

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/02/2013, 17h12
  2. [RegEx] Correction avec les expressions régulières
    Par bagu dans le forum Langage
    Réponses: 2
    Dernier message: 16/11/2007, 13h25
  3. Expression régulière correcte ?
    Par bolandfranck dans le forum VB.NET
    Réponses: 5
    Dernier message: 29/08/2007, 18h10
  4. Expression reguliere correcte
    Par aikinhdo dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2007, 12h59
  5. Réponses: 1
    Dernier message: 13/04/2007, 13h39

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