क्या फ़ाइल का विस्तार खोजने के लिए पर्ल में नियमित अभिव्यक्ति है? उदाहरण के लिए, यदि मेरे पास "test.exe
" है, तो मुझे ".exe
" कैसे मिलेगा?क्या फ़ाइल का विस्तार खोजने के लिए पर्ल में नियमित अभिव्यक्ति है?
उत्तर
my $file = "test.exe";
# Match a dot, followed by any number of non-dots until the
# end of the line.
my ($ext) = $file =~ /(\.[^.]+)$/;
print "$ext\n";
\.[^\.]*$
यह आपको स्ट्रिंग के अंत तक अंतिम बिंदु (डॉट सहित) के बाद सब कुछ देगा।
आप File::Basename इस्तेमाल कर सकते हैं एक मनमाना फ़ाइल एक्सटेंशन को निकालने के लिए:
use strict;
use warnings;
use File::Basename;
my $ext = (fileparse("/foo/bar/baz.exe", qr/\.[^.]*/))[2];
print "$ext";
उपयोग फ़ाइल :: बेसनाम
use File::Basename;
($name,$path,$suffix) = fileparse("test.exe.bat",qr"\..[^.]*$");
print $suffix;
मैंने कभी सोचा नहीं है कि फ़ाइल :: बेसनाम इस नौकरी के लिए कोई अच्छा था क्योंकि आपको उस पैटर्न को आपूर्ति करना है जिसे आप मैच ऑपरेटर के साथ एक ही काम करने के लिए इस्तेमाल कर सकते थे। –
यदि यह विस्तार प्राप्त करने के लिए है, तो सामान्य रेगेक्स पर्याप्त होगा। लेकिन फ़ाइल :: बेसनाम भी शेष पथ को पार करता है। यदि ओपी को विस्तार की आवश्यकता के अलावा उन्हें प्राप्त करने की आवश्यकता है, तो फ़ाइल :: बेसनाम आसान काम में आता है। – ghostdog74
चेतावनी: मेरे पास फाइलें थीं जिन्हें उपयोगकर्ता नाम 'filename..doc' के रूप में नामित किया गया था और उपरोक्त प्रत्यय के लिए regep एक्सटेंशन के रूप में '..doc' वापस कर देगा। इस दिशा में जाने पर @toolic उत्तर (या फ़ाइल के लिए पर्ल डॉक्स: बेसनाम) में से एक को पसंद करें। –
यहाँ यह एक regex पैटर्न n-स्तरीय एक्सटेंशन फ़ाइल मैच के लिए है (उदाहरण के लिए .tar.gz या .tar.bz2)।
((\.[^.\s]+)+)$
उदाहरण:
#!/usr/bin/perl
my $file1 = "filename.tar.gz.bak";
my ($ext1) = $file1 =~ /((\.[^.\s]+)+)$/;
my $file2 = "filename.exe";
my ($ext2) = $file2 =~ /((\.[^.\s]+)+)$/;
my $file3 = "filename. exe";
my ($ext3) = $file3 =~ /((\.[^.\s]+)+)$/;
my $file4 = "filename.............doc";
my ($ext4) = $file4 =~ /((\.[^.\s]+)+)$/;
print "1) $ext1\n"; # prints "1) .tar.gz.bak"
print "2) $ext2\n"; # prints "2) .exe"
print "3) $ext3\n"; # prints "3) "
print "4) $ext4\n"; # prints "4) .doc"
- 1. क्या करता है \ डी पर्ल नियमित अभिव्यक्ति
- 2. डिबगिंग पर्ल नियमित अभिव्यक्ति
- 3. एक पर्ल नियमित अभिव्यक्ति
- 4. नियमित अभिव्यक्ति - रूबी बनाम पर्ल
- 5. वाक्य में अंतिम शब्द खोजने के लिए नियमित अभिव्यक्ति
- 6. नियमित अभिव्यक्ति में '?: `का अर्थ क्या है
- 7. बैच फ़ाइल नियमित अभिव्यक्ति नाम
- 8. पर्ल विभाजन और नियमित अभिव्यक्ति
- 9. डुप्लिकेट शब्दों को खोजने और निकालने के लिए नियमित अभिव्यक्ति
- 10. पर्ल: नियमित अभिव्यक्ति के लिए हैश कुंजी मिलान करना
- 11. नियमित अभिव्यक्ति (? <! -) का अर्थ क्या है
- 12. नियमित अभिव्यक्ति?
- 13. नियमित अभिव्यक्ति प्रदर्शन: बूस्ट बनाम पर्ल
- 14. फ़ाइल नाम सत्यापन के लिए सी # में नियमित अभिव्यक्ति
- 15. उपसर्ग नियमित अभिव्यक्ति क्या है?
- 16. पर्ल: केवल नियमित अभिव्यक्तियों के लिए उद्धरण है? क्या यह फ़ाइल नामों के लिए सुरक्षित है?
- 17. शब्दकोष के लिए नियमित अभिव्यक्ति
- 18. क्या पर्ल नियमित अभिव्यक्ति का मिलान करने की संख्या का मूल्यांकन करने का कोई तरीका है?
- 19. अंग्रेजी के लिए नियमित अभिव्यक्ति
- 20. नियमित अभिव्यक्ति मिलान के लिए ग्रोवी वाक्यविन्यास
- 21. रेगेक्स/"नियमित अभिव्यक्ति" में नियमित रूप से क्या मतलब है?
- 22. समय के लिए नियमित अभिव्यक्ति
- 23. नियमित अभिव्यक्ति
- 24. सी ++ एक नियमित अभिव्यक्ति
- 25. पायथन नियमित अभिव्यक्ति में '(? I) पासवर्ड' का अर्थ क्या है?
- 26. स्पेनिश शब्द के लिए नियमित अभिव्यक्ति क्या है?
- 27. नियंत्रण वर्णों के लिए नियमित अभिव्यक्ति क्या है?
- 28. नियमित अभिव्यक्ति का उपयोग कर फ़ाइल में पढ़ें?
- 29. पाइथन नियमित अभिव्यक्ति में "?:" का क्या अर्थ है?
- 30. कानूनी उद्धरण के लिए नियमित अभिव्यक्ति
@ Ether..I इसकी एक बड़ा सवाल है। मैं पर्ल में एक दशक से अधिक समय तक चालू और बंद हूं और कई बार जब मैं कुछ त्वरित संदर्भ चाहता हूं। – Anshu