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 :

Regex et split [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut Regex et split
    Bonjour,

    Je vous explique un peu ce que je veux faire, en fait je voudrais splité une page web qui propose des activitées suivant le jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <strong><font size="+2"> dimanche 24 juin
    mais dès fois l'évènement est sur 2 jours comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <strong><font size="+2">samedi 30</font></strong> 
                            <strong><font size="+2"> 
                 juin au dimanche 1 juillet            </font></strong>
    Donc ce que je pensais faire c'est splité et ensuite traité les évènements 1 à 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listeEvements = split('<strong><font size=\"\+2\">', $pageEvenements);
    Et ensuite traité les évènements de chaque jour.

    Bien sûr dans mon cas là il récupère bien dans le premier cas mais quand l'évènement est sur 2 jours ça ne fonctionne pas.
    J'ai remarqué que quand l'évènement était sur 2 jours, il n'y a pas d'espace après la fin de la balise <font size="+2">

    J'ai essayé diverse méthodes mais sans grand succès.(notamment avec preg_split() )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $separateurs = '(<strong><font size=\"\+2\">[\s]?)';
     
    $listeEvenements = preg_split($separateurs, $pageEvenements);
    Pourriez-vous me donner quelques conseils ?

    Merci d'avance.

    EDIT :

    Je viens tout juste de réussir à faire quelques chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $separateurs = '(<strong><font size=\"\+2\">[\s]?[\w])';
    Par contre je perds la première lettre de chaque jour.

    Bon comme je perds une lettre j'ai fais une autre fonction

    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
    16
    17
    18
    19
    20
    function rechercheJourSemaine($strCorrompu){
     
    $jourDeLaSemaine = array("lundi","mardi","mercredi","jeudi","vendredi","samedi","dimanche");
     
    $resultat = false;
    $arret = false;
    $i = 0;
     
    while(($i<= sizeof($jourDeLaSemaine)) && ($arret == false)){
    	if(preg_match('/'.$strCorrompu.'/',$jourDeLaSemaine[$i]))
    	{
    		$arret = true;
    		$resultat = $jourDeLaSemaine[$i];
    	}
    	else
    		$i++;
    }
    return($resultat);
     
    }
    Bonne continuation

  2. #2
    Membre émérite 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
    Par défaut
    A ce que je lit,

    Tu fais cette regex là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('#<strong><font(?: .*)?>(.*)</font></strong>#Us', $pageEvenements, $matches);
    Et pour chaque $matches, si ce test est bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if preg_match('#\w+ \d{1,2}$#', $match)
    c'est que tu as un évenement sur 2 jours. Et donc il faut que tu prenne le $matches suivant pour obtenir la date complete.

    sinon, c'est soir un evenement sur 1 jour soit la continuité d'un évenement de 2 jours.

    Tu peux savoir si c'est un évenement d'1 jour avec cette regex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if preg_match('#\w+ \d{1,2} \w+#', $match)

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

Discussions similaires

  1. [Regex] Fonction Split()
    Par coolfarmer dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/10/2009, 00h13
  2. Problème sur split avec regex
    Par fr1man dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/05/2009, 13h46
  3. Réponses: 2
    Dernier message: 07/08/2007, 12h01
  4. [RegEx]Probleme avec String.split
    Par sebastieng dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/02/2006, 21h24
  5. [String] pb fonction String[] split(String regex)
    Par Kyti dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2005, 13h06

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