2010-01-30 11 views
6

मैं सभी अपलोड की गई फ़ाइलों के फ़ाइल नामों को साफ़ करना चाहता हूं। मैं अवधि, अक्षरों और संख्याओं को छोड़कर सभी पात्रों को हटाना चाहता हूं। मैं रेगेक्स के साथ अच्छा नहीं हूं इसलिए मैंने सोचा कि मैं यहां पूछूंगा। क्या कोई मुझे एक सहायक साइट पर इंगित कर सकता है या मुझे दिखा सकता है कि इसे एक साथ कैसे रखा जाए? मैं PHP का उपयोग कर रहा हूँ।अक्षरों और संख्याओं को छोड़कर सभी वर्णों से मिलान करने के लिए Regex

+1

यह आपके द्वारा क्या मतलब है इस पर निर्भर करता है Etters। (अब तक) प्रस्तावित समाधान केवल 'ए-जेड' और 'ए-जेड' को बाहर करते हैं लेकिन सभी इन श्रेणियों के बाहर अक्षर 'é' आदि से मेल खाते हैं। –

उत्तर

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

धन्यवाद यह काम करता है मैं भी एक अंडरस्कोर जोड़ने के लिए भूल गया यह काम करता है, लेकिन यह इष्टतम है।।।? [^ a-zA-Z0-9 |। _] – Timay

+2

@Timay : आप अंडरस्कोर मैच के लिए चाहते हैं, का उपयोग '[^ a-zA-Z0-9 ._]', या सरल, '[^ \ w।]' – kennytm

+0

वाह .. बस उन 4 अक्षर संख्या के अलावा सब कुछ भरपाई कर देंगे। , अक्षरों? – Timay

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

(इस तरह रेगुलर एक्सप्रेशन का उपयोग करने का एक पर्ल अभिव्यक्ति है PHP में आप करते हैं:।

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

धन्यवाद केनी। क्या यह भी अवधि से मेल खाएगा? – Timay

+0

@Timay: '^' का अर्थ है "को छोड़कर कोई भी वर्ण"। इसके बाद '.a-zA-Z \ d' का अर्थ है" अवधि, अक्षर और संख्याएं "। तो यह उन सभी पात्रों से मेल खाएगा जो अवधि, वर्णमाला और संख्या नहीं हैं, फिर उन्हें हटा दें। – kennytm

+0

धन्यवाद केनी। मैं इसे अभी प्लग करने जा रहा हूं। – Timay

0

कोशिश यह उपयोग करने के लिए:

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

यह निकाल देंगे सभी अक्षरों और संख्याओं के साथ।

संबंधित मुद्दे