ऐसा करने के लिए, तो आप इस नियमित अभिव्यक्ति का उपयोग करना होगा: तो
foo/bar/.+?\.(?!jar).+
स्पष्टीकरण
आप यह क्या अनदेखी करने के लिए कह रहे हैं, यह अभिव्यक्ति बातों के लिए खोज कर रहा है आप डॉन टी चाहते हैं।
- आप किसी भी फ़ाइल जिसका नाम (सापेक्ष निर्देशिका सहित) के लिए लग रही है। (Foo/बार /)
- इसके बाद आप किसी भी अक्षर हैं जो एक अवधि (। +? \ पूर्व में होना के लिए देखो == मैच भी शामिल है एक या अधिक जब तक आप अवधि के चरित्र तक नहीं पहुंच जाते)
- आप तब सुनिश्चित करते हैं कि इसमें "जार" समाप्त नहीं हो रहा है (?! जार) (इसे
- पर नकारात्मक नज़र डाला गया है अंततः आप इसे समाप्त कर लेते हैं है (। +)
नियमित एक्सप्रेस आयनों को गड़बड़ करना आसान होता है, इसलिए मैं दृढ़ता से सुझाव देता हूं कि आपको उन्हें बनाने में सहायता के लिए Regex Buddy जैसे टूल प्राप्त करें। यह एक रेगेक्स को सादे अंग्रेजी में तोड़ देगा जो वास्तव में मदद करता है।
संपादित
अरे Jason S, तुम मुझे पकड़ लिया, यह उन फ़ाइलों को याद करता है।
यह सही किया regex हर उदाहरण आप सूचीबद्ध के लिए काम करेंगे:
foo/bar/(?!.*\.jar$).+
यह पाता है:
- foo/बार/baz.txt
- foo/बार/baz
- foo/बार/जार
- foo/bar/baz.jar.txt
- foo/bar/ba z.jar।
- foo/bar/baz।
- foo/bar/baz.txt।
लेकिन नहीं मिल रहा है
नई स्पष्टीकरण
यह कहते में फ़ाइलों को देखने के लिए "foo/बार /", तो अगर वहाँ शून्य या अधिक ".jar" और फिर कोई और अधिक पात्रों द्वारा पीछा चरित्र से मेल नहीं खाते ($ लाइन का अंत है), फिर, यदि यह मामला नहीं है, तो निम्न वर्णों से मेल खाता है।
स्रोत
2009-10-02 22:27:19
whee! धन्यवाद, अब मैं जाऊंगा और कोशिश करूँगा। –
हम्म, अच्छा विचार है, लेकिन यह कहा गया है कि यह काम नहीं करेगा, क्योंकि यह बिना किसी एक्सटेंशन के फाइलों से मेल नहीं खाएगा। लेकिन मुझे लगता है कि मैं इसे अपनी जरूरतों में बदल सकता हूं। 'Foo/bar/'भाग आसान है इसलिए चलिए इस पल के बारे में भूल जाएं। यदि आप इसे ठीक कर सकते हैं तो यह "baz.txt", "baz", "jar", "baz.jar.txt", "baz.jar।", "Baz।", और "baz.txt" फ़ाइलों से मेल खाता है। " लेकिन नहीं "baz.jar" तो मैं स्वीकार करूंगा। :-) –
अरे जेसन, मैं देखता हूं कि आपका क्या मतलब है। मैंने अभी अपना जवाब एक काम करने वाले रेगेक्स के साथ अपडेट किया है। मैंने आपके द्वारा सूचीबद्ध प्रत्येक स्ट्रिंग के खिलाफ इसका परीक्षण किया। –