Bonjour,

Je souhaite effectuer un traitement sur une chaine pour y éliminer les caractère spéciaux.
Pour cela j'utilise une expression régulière qui va remplacer tous les caractères autres que ceux définis dans l'expression régulière par le caractère "_".

Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
return eregi_replace("[^a-z0-9._-àéèêù[:space:]]+", "_", $chaine);
Logiquement on retrouvera une chaine avec :

- Les caractères alphanumériques sont admis (a-z0-9)
- Le point
- l'underscore
- le tiret
- les caractères accentués : àéèêù
- l'espace

Et bien non, exemple :

La chaine : ponctuation.point.[crochet](parenthèse)-tiret-;pvirg;'cote'&commercial&²carre²#diese#{acolade}`coteinc`_undersc_^chap^@arob@=egal=+plus+r7àá
donnera :
Ponctuation.point._crochet_parenthèse_tiret_pvirg_cote_commercial_²carre²_diese_{acolade}`coteinc`_undersc__chap_arob_egal_plus_r7àa

Ma question : pourquoi reste-t-il des caractères spéciaux ??

Un spécialiste des expression régulière peut-il se pencher sur mon prob ??

Merci d'avance de vos réponses...