2009-06-17 8 views
1

Ce qui serait un bon moyen de se débarrasser de tous les caractères, sauf les lettres, les chiffres, les guillemets et les traits d'union. C'est ce que j'ai eu jusqu'à présent.PHP RegExp certains caractères

$test = preg_replace('#[^a-zA-Z0-9"-]#',' ',$string); 

Une suggestion?

Merci

+2

Votre approche est très bien, et assez standard de sorte que tout développeur comprendrait. –

+1

Y a-t-il une raison pour laquelle vous ne voulez pas utiliser la solution que vous avez déjà? –

+0

se demandait juste si pour une raison quelconque il y avait une erreur possible. Merci quand même –

Répondre

3

Votre regex est à peu près aussi bien une solution que vous allez trouver.

2

Vous pouvez utiliser \ d pour faire correspondre les chiffres et l'indicateur i pour faire correspondre a-z avec une insensibilité à la casse.

$test = preg_replace('#[^a-z\d\w"-]#i','',$string); 

Voici le php référence regex-syntaxe: http://se.php.net/manual/en/regexp.reference.php

+0

Corrigez-moi si je me trompe, mais ne correspond pas aux numéros? –

+0

Ceci est incorrect car \ w correspond aux traits de soulignement. –