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 :

Test d'une chaîne de caractère par expression rationnelle


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut Test d'une chaîne de caractère par expression rationnelle
    Bionjour,

    J'assaie d'elever les données temporaires contenues dans un tableau. J'entend par données temporaire des chaîne de caractères conannt le mot test, des chaînes de caractères qui ne sont qu'une répetition de plusieurs lettres ...
    Donc, je rentre dans mon tableau (for)
    je trouve la chaîne "test tmp", je fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match("test tmp","/test/");
    ce qui a ma connaissance devrait me retoruner 1 (puisque la chaine contient "test", mais non cette fonction me retorune 0.
    Comment puis je faire alors pour savouir si elle contient "test" ou une répetition de 1 à 3 lettres ?

    Merci pour votre aide,
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  2. #2
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    salut,
    tu as inversé l'ordre des paramètres :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $subject = 'test tmp';
    $pattern = '`test`i';
    echo preg_match($pattern, $subject); // affiche 1
    Pour la répétition de caractère, s'il est question de lettre seulement :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '`[[:alpha:]]{2,3}`i';
    Zend PHP5 Certification
    MySQL 4 Core Certification

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par Gats Voir le message
    salut,
    tu as inversé l'ordre des paramètres :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $subject = 'test tmp';
    $pattern = '`test`i';
    echo preg_match($pattern, $subject); // affiche 1
    ça correspond à quoi le par exemple un test sur test nico me renvoi 0
    mais un test sur myfirstenv renvoi 1
    Citation Envoyé par Gats Voir le message
    Pour la répétition de caractère, s'il est question de lettre seulement :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '`[[:alpha:]]{2,3}`i';
    j'ai alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: preg_match() [function.preg-match]: Unknown modifier '{'
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Le 'i' est une option : Effectue une recherche insensible à la casse.
    Citation Envoyé par sliderman
    par exemple un test sur test nico me renvoi 0
    mais un test sur myfirstenv renvoi 1
    C'est l'inverse pour moi.
    DOnne voir ton code ...
    Zend PHP5 Certification
    MySQL 4 Core Certification

  5. #5
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    enfait c'est une fonction qui parcours un tableau
    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
    function eraseTamporaryDataFromArray($array)
    	{
    		foreach($array as $key => $value)
    		{
    			$patterns = array ('`test`i');
    			for($i = count($patterns) -1 ; $i >= 0 ; $i --)
    			{
    				if(preg_match($patterns[$i], $key)==1)
    				{
    					unset($array[$key]);
    				}
    			}
    		}
    		return array_unique($array);
    	}
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  6. #6
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(preg_match($patterns[$i], $key)==1)
    ça ne devrait pas être value à la place de $key ?

    Pour la répétition de caractère :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for($cdascii=97;$cdascii<=123;$cdascii++) {
    	if($rep = preg_match('`'.chr($cdascii).'{2,3}`i', $value))
    		break;
    }
    Je regarde si il y a mieux.
    Zend PHP5 Certification
    MySQL 4 Core Certification

  7. #7
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par Gats Voir le message
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(preg_match($patterns[$i], $key)==1)
    ça ne devrait pas être value à la place de $key ?

    Pour la répétition de caractère :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for($cdascii=97;$cdascii<=123;$cdascii++) {
    	if($rep = preg_match('`'.chr($cdascii).'{2,3}`i', $value))
    		break;
    }
    Je regarde si il y a mieux.
    non justement
    enfait j'ai choisi un tableau associatif (moi qui gère la clé)
    et je test sur l'indice et non la valeur
    et donc je peux pas utiliser de for
    j'ai seulement le 'droit' au foreach
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

Discussions similaires

  1. Remplacer une chaîne de caractéres par une autre
    Par koKoTis dans le forum Linux
    Réponses: 6
    Dernier message: 15/10/2007, 09h00
  2. Scinder une chaîne de caractère par rapport à un séparateur
    Par Tontorise dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/07/2007, 13h28
  3. Test sur une chaîne de caractères
    Par ThunderBolt_ dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/06/2007, 06h37
  4. Test d'une chaîne de caractères
    Par salty dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2006, 16h40
  5. Réponses: 8
    Dernier message: 15/07/2006, 18h59

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