मेरे पास डेटा.फ्रेम है जिसमें फ़ाइल नामों का टेक्स्ट कॉलम है। मैं पथ या फ़ाइल एक्सटेंशन के बिना फ़ाइल नाम वापस करना चाहता हूं। आम तौर पर, मेरे फ़ाइल नाम गिने गए हैं, लेकिन उन्हें होना जरूरी नहीं है। उदाहरण के लिए:रेगेक्स रिटर्न फ़ाइल का नाम, पथ और फ़ाइल एक्सटेंशन को हटाएं
df<-data.frame(data=c("a","b"),fileNames=c("C:/a/bb/ccc/NAME1.ext","C:/a/bb/ccc/d D2/name2.ext"))
मैं
df<-data.frame(data=c("a","b"),fileNames=c("NAME","name"))
के बराबर वापस जाने के लिए चाहते हैं, लेकिन मैं gsub के साथ ऐसा करने चालाक नियमित अभिव्यक्ति को समझ नहीं सकता। उदाहरण के लिए, मैं के साथ विस्तार से छुटकारा मिल सकता है (फ़ाइल नाम प्रदान की एक संख्या के साथ समाप्त होता है):
gsub('([0-9]).ext','',df[,"fileNames"])
हालांकि मैं विभिन्न पैटर्न की कोशिश कर रहा है (इस साइट पर regex मदद फ़ाइलों और इसी तरह के समाधान को पढ़ कर), मुझे पिछले "/" और पहले "।" के बीच पाठ को वापस करने के लिए रेगेक्स नहीं मिल सकता है। समान प्रश्नों के लिए कोई विचार या आगे बहुत सराहना की जाती है!
सबसे अच्छा मैं मिल गया है है:
gsub('*[[:graph:]_]/|*[[:graph:]_].ext','',df[,"fileNames"])
लेकिन इस 1) सभी प्रमुख मार्ग पात्रों से छुटकारा पाने के नहीं है और 2) एक विशिष्ट फ़ाइल एक्सटेंशन पर निर्भर है।
दिलचस्प दृष्टिकोण। मेरे लिए, यह दृष्टिकोण रेगेक्स से अधिक स्पष्ट है, जो वर्तमान में मेरे लिए भ्रमित है। मै उसे करने की एक कोशिश तो करूंगा। – Docuemada
यह अच्छी तरह से काम किया, धन्यवाद। यह मेरे लिए अधिक समझ में आता है, लेकिन शायद यह है क्योंकि मुझे रेगेक्स के साथ और अधिक अभ्यास की ज़रूरत है! – Docuemada
@ डोकुमेडा, कोई समस्या नहीं। जैसा कि दिखाया गया है, 'file_path_sans_ext' एक मूल नियमित अभिव्यक्ति है, क्योंकि मुझे संदेह है कि' बेसनाम 'है (लेकिन सत्यापित करने के लिए जांच नहीं की गई है)। – A5C1D2H2I1M1N2O1R2T1