2010-11-20 8 views
0

Je veux enlever tout d'une chaîne à l'exception des chiffres, des lettres, _ (underscore) et: (deux points)Problème simple de regex!

Il est PREG et je n'ai rencontré # \ W #, mais il supprime le: (deux points) .

Toute aide est appréciée, merci!

+1

Plus "Je ne sais rien à propos de regex". Dans ce cas, il vaut mieux l'apprendre (au moins les bases, qui sont suffisantes pour cela). – delnan

+0

Comme delnan a dit que vous devriez juste rechercher des expressions régulières. – Thomas

+0

Salut, j'ai demandé de l'aide, ne pas être dit de l'apprendre. – Synergy

Répondre

0

[^\w:]+ - Retirez tout ce qui est pas ([^...]) une lettre, un chiffre, soulignement (\w) ou deux points (:).

Exemple de code:

$ptn = "/[^\w:]+/"; 
$str = "Hello~~~ World+++: 123"; 
echo preg_replace($ptn, "", $str); 

Sorties: HelloWorld:123

+0

Kobi, merci pour votre réponse, mais cela ne semble pas fonctionner. J'utilise PHP et il m'a donné l'erreur suivante: Attention: preg_replace() [function.preg-replace]: Modificateur inconnu '+' dans D: \ Servers \ Web \ public_html \ index.php sur la ligne 17 – Synergy

+0

@Synergy - Je ne sais pas quel est votre problème, peut-être que vous pouvez poster une partie de votre code? J'ai mis à jour la réponse avec un échantillon. Dans tous les cas, cela devrait fonctionner exactement de la même manière sans le '+'. – Kobi

+0

Ce nouveau motif que vous avez mis en place a fonctionné, merci Kobi! – Synergy