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 :

Extraction de texte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 347
    Par défaut Extraction de texte
    Bonjour à toutes et à tous,

    Je suis pas très fort en regex.
    J'arrive pas à trop à m'en sortir.
    J'ai un texte avec plusieurs fois l'extrait ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ,'numViews':638,'$type':'co
    J'aimerais extraire le numero de numViews à savoir 638 dans ce cas mais jy arrive pas.

    J'ai bidouillé un truc ci dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	preg_match('|\'numViews\':(.*),\'$type\'|', $text, $numViews);
    Mais ca marche pas. Pourriez vous m'aider s'il vous plait ?

    merci d'avance

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Je suis sur smartphone en cet instant, difficile d'y écrire des regex 😉, mais petit conseil : essaie le site regex101.com, tu verras, hyper pratique !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 347
    Par défaut
    Yes merci bcp. En vrai je l'utilise déjà mais je suis assez sectique car ca m'aide bien mais ca donne rarement le même résultat en vrai.
    Typiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "|\'numViews\':(.*),\'|"
    identifie parfaitement le nombre désiré sur Reg101, en pratique dans preg_match, ca detecte pas le caractère de fin.
    Du coup, je suis toujours perdu. Je regrette vraiment d'avoir jamais eu de cours de RegEx, mais bon, je m'en sors à coup de bidouille et de stripos mais surtout grace à votre aide

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    La regex suivante isole bien le chiffre 638 : https://regex101.com/r/y9oBFV/1

  5. #5
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    ca m'aide bien mais ça donne rarement le même résultat en vrai
    Première nouvelle!

    en pratique dans preg_match, ça ne détecte pas le caractère de fin
    Peux-tu montrer un exemple de code complet (incluant le contenu de la chaîne) pour illustrer ton propos?

    Je regrette vraiment d'avoir jamais eu de cours de RegEx
    Le tutoriel de Guillaume Rossolini sur ce site te donnera les bases.

    Pour éviter d'avoir à échapper un caractère sur deux, place ta chaîne entre double quotes.

    Sinon, utiliser | comme délimiteur n'est pas le meilleur choix du monde, car même si tu ne l'utilises pas dans ta pattern, le | a une signification spéciale (un OU logique). Personnellement j'ai opté pour ~ (le tilde) qui n'a aucune signification spéciale et qu'on trouve rarement dans les chaînes donc dans les patterns. Le / est le choix classique (par défaut dans regex101 et dans les exemples du manuel PHP), mais comme il est courant, il n'est pas si pratique.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 347
    Par défaut
    La regex suivante isole bien le chiffre 638 : https://regex101.com/r/y9oBFV/1
    Super Merci ca marche très bien
    Images attachées Images attachées  

  7. #7
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    La regex que tu illustres dans ton image n'est pas celle que j'ai suggéré.

    J'utilisais (\d*) pour cibler uniquement un chiffre, tu as changé en (.*) qui cible n'importe quoi (chiffre, lettre...).

  8. #8
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut
    Peut être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match('|\'numViews\':(\d+),\'$type\'|', $text, $numViews);
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Extraction de texte dans une page HTML
    Par ninox_ dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/05/2007, 17h29
  2. [RegEx] Extraction de texte situé entre deux balises
    Par morpho365 dans le forum Langage
    Réponses: 7
    Dernier message: 27/03/2007, 18h18
  3. Extraction de texte dans un fichier
    Par chris91 dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2006, 16h09
  4. Extraction de texte de pages web?
    Par VinnieMc dans le forum Web
    Réponses: 4
    Dernier message: 01/03/2006, 19h42
  5. cibler l'extraction du text
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 09/02/2006, 14h00

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