2010-11-20 12 views
0

Ich möchte alles aus einer Zeichenfolge entfernen außer Zahlen, Buchstaben, _ (Unterstrich) und: (Doppelpunkt)Einfaches Regex-Problem!

Es ist PREG und ich bin nur auf # \ W # gestoßen, aber es entfernt die: (Doppelpunkt) .

Jede Hilfe wird geschätzt, danke!

+1

Mehr wie "Ich weiß nichts über regex". In diesem Fall lernst du es besser (zumindest die Grundlagen, die dafür ausreichen). – delnan

+0

Wie Delnan sagte, sollten Sie nur reguläre Ausdrücke nachschlagen. – Thomas

+0

Hallo, ich habe um Hilfe gebeten, nicht gesagt zu werden, es zu lernen. – Synergy

Antwort

0

[^\w:]+ - Entfernen Sie alles, was nicht ([^...]) ein Buchstabe, eine Ziffer, unterstreicht (\w) oder Doppelpunkt (:) ist.

Beispielcode:

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

Ausgänge: HelloWorld:123

+0

Kobi, danke für deine Antwort, aber es scheint nicht zu funktionieren. Ich benutze PHP und es gab mir den folgenden Fehler: Warnung: preg_replace() [Funktion.preg-ersetzen]: Unbekannte Modifikator '+' in D: \ Servers \ Web \ public_html \ index.php in Zeile 17 – Synergy

+0

@Synergy - Ich bin mir nicht sicher, was dein Problem ist, vielleicht kannst du etwas von deinem Code posten? Ich habe die Antwort mit einem Beispiel aktualisiert. In jedem Fall sollte es genauso funktionieren ohne das '+'. – Kobi

+0

Das neue Muster, das du aufgemacht hast, hat funktioniert, danke Kobi! – Synergy