2010-01-30 16 views
6

Ich möchte die Dateinamen aller hochgeladenen Dateien löschen. Ich möchte alle Zeichen außer Perioden, Buchstaben und Zahlen entfernen. Ich bin nicht gut mit Regex, also dachte ich, ich würde hier fragen. Kann mir jemand eine hilfreiche Seite zeigen oder mir zeigen, wie man das zusammenstellt? Ich benutze PHP.Regex für alle Zeichen außer Buchstaben und Zahlen

+1

Es hängt davon ab, was Sie mit l meinen Etter. Die (bis jetzt) ​​vorgeschlagenen Lösungen schließen nur "a-z" und "A-Z" aus, aber alle passen Buchstaben außerhalb dieser Bereiche wie "é" usw. an. –

Antwort

8
$newfilename=preg_replace('/[^a-zA-Z0-9.]/','',$filename); 
+0

Danke. Das funktioniert. Ich habe auch vergessen, einen Unterstrich hinzuzufügen. Das funktioniert, aber ist es optimal? [^ A-zA-Z0-9. | _] – Timay

+2

@Timay : Wenn Sie den Unterstrich anpassen möchten, verwenden Sie '[^ a-zA-Z0-9 ._]', oder einfacher, '[^. \ W]'. – kennytm

+0

Wow .. Nur diese 4 Zeichen werden alles außer Zahlen entsprechen , Buchstaben? – Timay

1
s/[^.a-zA-Z\d]//g 

(Dies ist ein Perl-Ausdruck, wie die RegExp verwenden In PHP Sie tun.

$output = preg_replace('/[^.a-zA-Z\d]/', '', $input); 
+0

Danke Kenny. Wird dies auch Perioden entsprechen? – Timay

+0

@Timay: Das '^' bedeutet "beliebige Zeichen außer". Das '.a-zA-Z \ d' nach dem bedeutet" Periode, Alphabete und Zahlen ". Es passt also alle Zeichen an, die keine Periode, Alphabete und Zahlen sind, und entfernt sie dann. – kennytm

+0

Danke Kenny. Ich werde das jetzt einstecken. – Timay

0

Versuchen Sie, diese zu nutzen:

$cleanString = preg_replace('#\W#', '', $string); 

Es wird entfernen alle außer Buchstaben und Zahlen

Verwandte Themen