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

Signaler
Messages postés
29639
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 septembre 2020
-
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
-
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

Messages postés
29639
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 septembre 2020
337
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
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
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
Messages postés
29639
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 septembre 2020
337
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
Messages postés
29639
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 septembre 2020
337
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
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
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
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
Super, j'avais pas vu ton post

stéph