REGEXP - Supprimer Dates et Pourcentage dans chaine de caractères

Résolu
jordane45 Messages postés 36363 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 septembre 2022 - 29 janv. 2013 à 11:27
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

6 réponses

jordane45 Messages postés 36363 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 septembre 2022 350
29 janv. 2013 à 15:28
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
3
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 3
29 janv. 2013 à 14:46
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
0
jordane45 Messages postés 36363 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 septembre 2022 350
29 janv. 2013 à 15:00
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
0
jordane45 Messages postés 36363 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 septembre 2022 350
29 janv. 2013 à 15:05
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 3
29 janv. 2013 à 15:44
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
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 3
29 janv. 2013 à 15:46
Super, j'avais pas vu ton post

stéph
0