2010-01-30 24 views
6

Yüklenen tüm dosyaların dosya adlarını temizlemek istiyorum. Dönemler, harfler ve sayılar dışındaki tüm karakterleri kaldırmak istiyorum. Regex ile pek iyi değilim, bu yüzden burada sormam gerektiğini düşündüm. Birisi beni yararlı bir siteye yönlendirebilir veya nasıl bir araya getireceğimi gösterebilir mi? PHP kullanıyorum.Regex harfler ve rakamlar hariç tüm karakterleri eşleştirmek için

+1

Ne demek istediğime göre l Etters. (Şimdiye kadar) önerilen çözümler sadece “a-z” ve “A-Z” yi hariç tutuyorlar ama hepsi é ”gibi aralıkların dışındaki harflerle eşleşecekler. –

cevap

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

Teşekkürler. Bu çalışır. Ayrıca bir alt çizgi eklemeyi unuttum. Bu çalışır ama en uygunudur? [^ A-zA-Z0-9. | _] – Timay

+2

@Timay : Alt çizgi ile eşleştirmek istiyorsanız, [^ a-zA-Z0-9 ._] 'veya daha basit kullanın, [^. \ W]'. – kennytm

+0

Wow .. Sadece bu 4 karakter sayılar dışındaki her şeyle eşleşir , mektuplar? – Timay

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

(Bu RegExp nasıl kullanılacağına dair bir Perl ifadesidir PHP Görecek.

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

Teşekkürler Kenny. Bu aynı zamanda dönemlere de mi uyuyor? – Timay

+0

@Timay: '^', "dışındaki herhangi bir karakter" anlamına gelir. Bundan sonra ".a-zA-Z \ d", "dönem, alfabe ve sayılar" anlamına gelir. Bu yüzden dönem, alfabe ve sayı olmayan tüm karakterlerle eşleşecek, ardından bunları kaldıracaktır. – kennytm

+0

Teşekkür ederim Kenny. Bunu şimdi takacağım. – Timay

0

deneyin bu kullanmak:

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

O kaldıracaktır tüm harfler ve sayılar

İlgili konular