pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
22 oct. 2009 à 16:08
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010
-
23 oct. 2009 à 12:01
Bonjour,
Ma question est simple, le résultat beaucoup moins ;)
Comment faire pour supprimer les caractères de ponctuation entre des balises ? Petit exemple :
ma question? je suis d'accord !
Je souhaite donc supprimer le : entre le < et le > pou obtenir :
ma question? je suis d'accord !
Je suppose que l'on peut faire ça avec preg_replace mais comment ???
Merci de votre aide.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 22 oct. 2009 à 20:36
Salut,
La question est : quels sont les caractèrs que tu souhaites supprimer ? (je veux dire de manière précise et exhaustive, sachant que la réponse "les caratères de ponctuation" n'est pas assez précise à mon sens et encore moins exhaustive)
La question pourrait se reformuler, le cas échéant : quels sont les caractères que tu souhaites conserver ? (idem, de manière précise et concise, mais là, la réponse "les caractères alphanumériques" est satisfaisante)
Dans le premier cas, je ne peux pas (encore) te proposer de solution. Dans le second cas, en admettant que tu ne souhaites conserver que les lettres et les chiffres (y compris les caractères accentués) :
$str = preg_replace('`[^\w]`', '', $source);
Chaque fois qu'on a besoin d'une regex, il est primordial de déterminer très précisément ce que l'on souhaite. Dans ton cas, les caractères à conserver ou ceux à éliminer, et ce de manière la plus précise possible, puisque suivant les cas on utilisera plutôt tel ou tel masque, tel classe de caractères, tel ou tel option, etc.
Il est aussi extrêmement important de savoir sur quelle chaîne de caractères on travaille : est-ce que ce n'est que la balise, ou bien y a-t-il autre chose autour ? Si oui, quels caractères peut-on rencontrer et en quelle quantité ?
Dans ton cas, la balise est-elle située en début, milieu ou fin de chaîne ?
Bref, sans toutes ces précisions, impossible de te donner une vraie réponse qui tienne la route.
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 22 oct. 2009 à 21:03
D'accord avec Neige. L'idée de prendre une expression régulière c'est tout à fait louable mais à condition de bien définir ce que tu appelles ponctuation et compagnie..
S.
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 23 oct. 2009 à 04:38
Pour ton cas particulier, ceci fera le travail, mais si ton utilisation dépasse simplement l'exemple que tu mentionnes ce n'est plus applicable, mais le principe restera le même.
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010 23 oct. 2009 à 11:58
Arto, j'ai essayé ton expression, elle ne marche pas :(
Neige, c'est plus compliqué que ça, il faut préciser que ceux sont les : entre les < et > que je veux supprimer :p
Je pense que Arto se rapproche mais le texte afficher est vide :(
pcmanprogrammeur
Messages postés126Date d'inscriptiondimanche 27 mars 2005StatutMembreDernière intervention16 octobre 2010 23 oct. 2009 à 12:01
oups !! ça marche Arto, en fait, fallait que je mette :
echo "<xmp>".preg_replace('/\<([^:]*)[:]*([^:]*)\>/','<$1$2>', '')."</xmp>";
pour voir le résultat à l'écran :)
Gros merci ;)