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 :

preg_match d'une chaine qui contient un espace [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut preg_match d'une chaine qui contient un espace
    Bonjour,

    Je parcours un fichier CSV et je cherche la chaine "2008 R2" insensible à la casse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    case preg_match('/2008 R2/i', $subject);
    Le code ci-dessus ne fonctionne pas, savez vous comment faire svp

    Ça doit être simple je pense.

    Merci.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Le code ci-dessus ne fonctionne pas
    C'est le message d'erreur que tu reçois ?

    Ceci dit, rien d'étonnant... tu devrais peut-être commencer par revoir comment utiliser un switch...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    Mon compteur me retourne 0

    Je fais un switch deja

    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
    21
    22
    23
    24
    switch (true) 
    {
    	case preg_match('/Windows NT/i', $subject);
    		$CptNT++;
    		break;
    	case preg_match('/2000/i', $subject);
    		$Cpt2000++;
    		break;
    	case preg_match('/2003/i', $subject);
    		$Cpt2003++;
    		break;
    	case preg_match('/2008/i', $subject);
    		$Cpt2008++;
    		break;
    	case preg_match('/2008 R2/i', $subject);
    		$Cpt2008R2++;
    		break;
    }
     
    echo "Total NT : ". $CptNT. '</br>';
    echo "Total 2000 : ". $Cpt2000. '</br>';
    echo "Total 2003 : ". $Cpt2003. '</br>';
    echo "Total 2008 : ". $Cpt2008. '</br>';
    echo "Total 2008 R2 : ". $Cpt2008R2. '</br>';
    Ca me sort bien mes Windows 2000, 2003, 2008, mais pas mes 2008 R2

    Total NT : 36
    Total 2000 : 173
    Total 2003 : 4110
    Total 2008 : 2519
    Total 2008 R2 : 0
    Merci d'avance.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Et tu n'as pas l'impression que quand il y a "2008 R2", ça signifie que tu es déjà passé dans le case "2008" ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    ha oui effectivement en inversant c'est mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			case preg_match('/2008 R2/i', $subject);
    			$Cpt2008R2++;
    			break;
     
    			case preg_match('/2008/i', $subject);
    			$Cpt2008++;
    			break;
    Merci !!!!!

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    Et donc question bonus

    Est ce que je peux rechercher 2 valeurs dans une seule regex ou il faut que j'en fasse deux ?

    Imaginons dans la chaine ci-dessous je recherche "2000" et "Pack 4"

    Microsoft Windows 2000 Server 5.0.2195 Service Pack 4
    Ca ca fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If (preg_match('/2000/i', $subject) AND preg_match('/Pack 4/i', $subject) )
    Mais il n'y a pas la possibilité, d'en faire qu'une seule, exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match('/2000/.../Pack 4/i', $subject
    C'est une question bete mais c'est pour savoir, merci à toi.

  7. #7
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Oui tu peut faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match('/2000(.+)Pack 4/i', $subject)


    Les boutons et existent, servez-vous en

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    parfait Merci à vous !!!

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

Discussions similaires

  1. Rempacer une chaine qui contient des "
    Par baime dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/10/2011, 07h58
  2. Insertion d'une chaine qui contient deja '
    Par issam16 dans le forum Access
    Réponses: 7
    Dernier message: 24/08/2006, 14h58
  3. Réponses: 4
    Dernier message: 20/02/2006, 00h33
  4. insertin d'une chaine qui contient des guillemets
    Par karimspace dans le forum Access
    Réponses: 7
    Dernier message: 13/02/2006, 11h55
  5. Réponses: 4
    Dernier message: 29/10/2005, 18h36

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