probleme avec la fonction preg_match

probleme avec la fonction preg_match - PHP - Programmation

Marsh Posté le 28-09-2007 à 09:40:45    

Bonjour,  
Je cheche le mot C$ dans une chaine de caracteres avec preg_match mais je ne m'en sort pas,  
 
je mets un \devant le $ pour échaper le caratere mais ca ne fonctionne pas mieux. la commande est la suivante :  
preg_match("/\bC\$\b/i", "icec est un C$ test" )
 
Merci pour le coup de main

Reply

Marsh Posté le 28-09-2007 à 09:40:45   

Reply

Marsh Posté le 28-09-2007 à 09:42:59    

qu'est ce qui ne "fonctionne pas"?
preg_match prend en 3eme argument le tableau des résultats, là tu ne risques pas de pouvoir les utiliser...
Et puis à quoi te sers le \b?

Reply

Marsh Posté le 28-09-2007 à 09:45:45    

\b permet qu'il recherche le mot entier et pas une partie du mot
Ce qui ne fonctionne pas, c'est qu'il ne trouve pas l'occurence C$ alors qu'elle existe bien dans la chaine

Reply

Marsh Posté le 28-09-2007 à 09:59:51    

A cause des espaces autour de C$ dans ta chaîne ?

Code :
  1. '/\b\s*C\$\s*\b/i'

Reply

Marsh Posté le 28-09-2007 à 10:22:38    

julian2002 a écrit :

\b permet qu'il recherche le mot entier et pas une partie du mot
Ce qui ne fonctionne pas, c'est qu'il ne trouve pas l'occurence C$ alors qu'elle existe bien dans la chaine


nan mais merci je sais à quoi ça sert [:w3c compliant]
 
Bref ton problème est amusant :)
Que se passe-t-il quand on met un $ entre double quote en php?  
Essaye la même ligne avec des quotes ( ' ) à la place des doubles ( " ) aussi bien sur la regex que sur ton texte.

Reply

Marsh Posté le 28-09-2007 à 21:17:03    

Y a ce que dit anapajari, mais aussi le fait que \b matche la fin d'un mot, et que $ fait pas vraiment partie des caractères constitutifs d'un "mot" a priori. [:petrus75]  
 
Essaie un truc du style :
/\bC\$(\s|$)/i


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed