Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1491 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Supprimer tout les chiffres/nombres contenus dans une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer tout les chiffres/nombres contenus dans une chaine

n°1609895
yazerty
Posté le 10-09-2007 à 06:23:04  profilanswer
 

Bonjour,
 
En ce début de semaine je me penche sur un script qui doit permettre de filtrer une chaine en fonction d'une autre.
 
Je dois supprimer tout chiffre (de -l'infini à +l'infini) de ma chaine ($chaine = "blah blah 3 oranges à 3 euros c'est pas cher pour mes 563 enfants :D" ).
 
Il me semble que le plus efficace est d'utiliser un preg_replace ? Mais je ne sais pas comment faire fonctionner la chose pour supprimer toute notion de chiffre dans ma chaine :- ?


---------------
L'insolite Yazerty.Net - Interprétation des rêves
mood
Publicité
Posté le 10-09-2007 à 06:23:04  profilanswer
 

n°1609921
nycius
Ich liebe dich !
Posté le 10-09-2007 à 09:24:26  profilanswer
 

Code :
  1. $chaine='unlds12fgdfgdfhdfhn1';
  2. $chaine1=ereg_replace("[^a-z]","",$chaine);
  3. echo $chaine1;


Message édité par nycius le 10-09-2007 à 09:24:36
n°1609953
omega2
Posté le 10-09-2007 à 10:37:12  profilanswer
 

nycius > Il ne veut virer que les chiffres, pas la ponctuation et les espaces. Un ' ereg_replace("[0-9]","",$chaine); ' est plus approprié si on se contente de nombre entié positif base 10.
Si on veut gérer aussi les décimaux, les nombres négatifs, les nombres en hexadécimaux ou les exponentiel alors il faut des regexp plus complexe (on doit en trouver dans google ou sur le forum) ou un script qui gère les différents cas.

n°1609978
nycius
Ich liebe dich !
Posté le 10-09-2007 à 11:13:43  profilanswer
 

En fait on sait pas trop ce qu'il veut au final donc faudrait qu'il nous dise.

n°1609994
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-09-2007 à 11:47:20  profilanswer
 

Euh s'il souhaite vraiment supprimer les chiffres, l'utilisation d'une regex est inutile, str_replace fera ça beaucoup plus simplement.
 
Maintenant je pense qu'il souhaite plus remplacer les nombres, auquel cas aucune des deux solutions proposées n'est correcte non plus dans la mesure ou les nombres négatifs seront mal remplacés ( ex: A-910B devienvra A-B au lieu de AB).
J'opterais pour une légère variation de la proposition d'omega2:

Code :
  1. preg_replace('/\-?\d+/', '', $lachaine);

n°1610130
yazerty
Posté le 10-09-2007 à 15:47:03  profilanswer
 

Je voulais effectivement supprimer toute trace de "nombre" vi, Merci à vous trois :) ! Je n'ai à priori pas de décimale.

 

Par contre j'ai un petit problème avec le filtrage de mes accents (en fait au finale je veux filtrer une chaine : sans chiffre/nombre ni accents et tout en minuscules.

 

J'ai fait ce petit bout de code :

 
Code :
  1. $text = "Bertrand Delanoë 2008 élections municipales";
  2. $text = strtolower ($text);
  3. $text = strtr($text, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ -'/", "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn----" );
  4. $text = preg_replace('|\W|', '-', $text);
  5. $text = preg_replace('/\-?\d+/', '', $text);
 

Mais cela me donne :

 

"bertrand-delano-lections-municipales"

 

Donc ça ne me va pas du tout car il me faut les lettres accentuées quand même, mais mises sous leur forme non accentuée (ex : "Delanoë" -> "delanoe" ).

 

Je ne cromprends pas pourquoi ça me supprime ces accent avec ce bout de code là ?


Message édité par yazerty le 10-09-2007 à 15:47:29

---------------
L'insolite Yazerty.Net - Interprétation des rêves

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Supprimer tout les chiffres/nombres contenus dans une chaine

 

Sujets relatifs
supprimer et inserer[Résolu] CSS/JS : comment supprimer un <br> ?
Supprimer plusieurs octets séparés d'un fichier binaire ?petit soucis d'Url Rewriting
Supprimer une ligne contenant une chaine de caractèreMacro pour supprimer des lignes d'un tableau à partir de valeur
Supprimer la barre horizontale sur dreamweaver[C] #define dans une chaine de caracteres
directive php pour ecrire variable dans chaine sans guillemets 
Plus de sujets relatifs à : Supprimer tout les chiffres/nombres contenus dans une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR