regex!

Eléphant du PHP | 113 Messages

08 mars 2006, 16:25

Bonjours,voici mon problème:
!^[^ ][-. ?a-zA-Z0-9]! //comme sa sa marche
!^[^ ][-. ?a-zA-Z0-9][^ ]$! //sa marche pas
si j'ajoute [^ ]$ normalement ma chaine doit pas finir par un espace mais là sa buggggg

voici le code:
<?
$recherche="un medicament pourris le synthol";
if (preg_match("!^[^ ][-. ?a-zA-Z0-9][^ ]$!", "$recherche"))//ma chaine doit pas commancer par un espace, 

//peut contenir des lettres maj et minsiscule ou des chiffres, le (-),(.)et(espace) sont pas obligatoir, et ma chaine ne doit pas ce terminé par un espace
{
echo "pour $recherche c'est ok";
}
else
{
echo 'Rentrer au moin un mot';
}
?> 

ViPHP
ViPHP | 649 Messages

08 mars 2006, 17:55

Tu n'as pas à placer entre accolade, ce code suffit largement :
!^ [-. ?a-zA-Z0-9] $! //sa marche pas
Ou encore tu peux utiliser le symbole \s qui revient strictement à la même chose.
Image