REGEXP - Supprimer Dates et Pourcentage dans chaine de caractères [Résolu]

Messages postés
27058
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2019
- - Dernière réponse : cs_stay
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
- 29 janv. 2013 à 15:46
Bonjour,

Pourriez-vous m'indiquer quel serait la méthode à utiliser pour extraire, d'une chaine de caractères , tout sauf les DATES et les chaines du type 'xx%' ou 'xx Prct'
* xx etant un nombre.

Exemple :
Ceci est un TEST de 30% le 27/12/2012
( donnerait : Ceci est un TEST de le )

Je suppose qu'il faudrait utiliser la fonction : preg_replace
mais je ne parviens pas à déterminer quel Pattern utiliser...

Par avance merci.

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
27058
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2019
318
3
Merci
Bon ben grace aux conseils de Steph,
j'ai fini par trouvé ce que je cherchais

$patDate='/\d{2}\/\d{2}\/\d{4}/';
$patHeur= '/\d{1,2}:\d{2}:\d{2}/';
$string = "Ceci est un TEST instance weblo01 de 30% le 27/12/2012 18:00:53";
$string = preg_replace($patDate, '', $string);
$string = preg_replace($patHeur, '', $string);
$string = preg_replace('/\d{1,2}%/', '', $string); 



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
0
Merci
Salut, je ferais ceci (la doc) :

<?php
$string = "Ceci est un TEST de 30% le 27/12/2012";
$string = preg_replace('/[0-9]+/', '', $string);
$string = preg_replace('/\%/', '', $string); 
$string = preg_replace('/\//', '', $string); 

echo $string;


stéph
Commenter la réponse de cs_stay
Messages postés
27058
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2019
318
0
Merci
Super .
Je cherchai à le faire en une seule ligne.. mais finalement vu comme ça c'est beaucoup plus simple.

Merci beaucoup.


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
27058
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2019
318
0
Merci
Enfin..
Presque.
En relisant, puis en testant je viens de constaté que vous retiré tous les caractères "numériques".
Hors, je dois seulement enlever les chaines de caractères de la forme :
- dd/MM/YYYY
- xx%

Si j'ai une chaine de ce genre :
Ceci est le test numero 1 : saturation de 99% à la date du 17/01/2013.

Je dois recupérer :
Ceci est le test numero 1 : saturation de à la date du



Donc, la question est toujours d'actualité.



Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
0
Merci
Salut,

Mais tu n'as pas fait de nouvelle rechercher :)

Voici :

<?php
$string = "Ceci est le test numero 1 : saturation de 99% à la date du 17/01/2013";
$string = preg_replace('/\d{2}%+/', '', $string);
$string = preg_replace('/\d{1}%+/', '', $string);
$string = preg_replace('/\d{2}\/\d{2}\/\d{4}/', '', $string);

echo $string;


stéph
Commenter la réponse de cs_stay
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
0
Merci
Super, j'avais pas vu ton post

stéph
Commenter la réponse de cs_stay