1) strcapture आप आधार का उपयोग कर "release 1.2.3"
से अंक और डॉट्स की एक स्ट्रिंग को निकालने के लिए चाहते हैं, तो
x <- "release 1.2.3"
strcapture("([0-9.]+)", x, data.frame(version = character(0)))
## version
## 1 1.2.3
2) regexec/regmatches वहाँ भी regmatches
और regexec
लेकिन वह यह है कि पहले से ही एक और जवाब में शामिल किया गया है।
sub(".* ([0-9.]+).*", "\\1", x)
## [1] "1.2.3"
3a) क्या आप जानते मैच शुरुआत में है या तो के बाद या यह पहले सब कुछ हटा समाप्त करते हैं:
3) उप इसके अलावा यह अक्सर sub
उपयोग करना संभव है
sub(".* ", "", x)
## [1] "1.2.3"
4) gsub कभी-कभी हम जानते हैं कि निकाले जाने वाले क्षेत्र में कुछ वर्ण हैं और वे el दिखाई नहीं देते हैं sewhere। एक अक्सर खेतों में इनपुट विघटित और फिर संख्या से या के माध्यम से वांछित एक भी सामना कर लेता)
gsub("[^0-9.]", "", x)
## [1] "1.2.3"
5 read.table: उस मामले में बस हर चरित्र की प्रत्येक पुनरावृत्ति कि स्ट्रिंग में नहीं किया जा सकता हटाना grep
।strsplit
, read.table
या scan
इस्तेमाल किया जा सकता:
read.table(text = x, as.is = TRUE)[[2]]
## [1] "1.2.3"
5a) ग्रेप/स्कैन
grep("^[0-9.]+$", scan(textConnection(x), what = "", quiet = TRUE), value = TRUE)
## [1] "1.2.3"
5 ब) ग्रेप/strsplit
grep("^[0-9.]+$", strsplit(x, " ")[[1]], value = TRUE)
## [1] "1.2.3"
6) सबस्ट्रिंग हैं हम चरित्र पीओ जानते हैं क्षेत्र के sition हम substring
इस तरह उपयोग कर सकते हैं:
substring(x, 9)
## [1] "1.2.3"
6a) सबस्ट्रिंग/regexpr या हम regexpr
उपयोग करने के लिए हमारे लिए चरित्र की स्थिति का पता लगाने में सक्षम हो सकता है:
substring(x, regexpr("\\d", x))
## [1] "1.2.3"
7) read.dcf कभी-कभी इनपुट को डीसीएफ फॉर्म में कनवर्ट करना संभव है, जिस स्थिति में इसे read.dcf
के साथ पढ़ा जा सकता है। इस तरह के डेटा प्रपत्र name: value
read.dcf(textConnection(sub(" ", ": ", x)))
## release
## [1,] "1.2.3"
देखें https://stackoverflow.com/a/27274231/1017276 – Benjamin
की है मुझे लगता है कि यह एक अच्छा विशिष्ट प्रश्न है कि एक जवाब (बजाय एक शिकार के रूप में बंद करने की तुलना में होना चाहिए, जब तक कि एक और सटीक मिलान मिल सकता है)। लेकिन कृपया एक अच्छा उदाहरण बनाएं जो पुन: उत्पन्न करने के लिए ओएस-विशिष्ट फ़ाइलों पर भरोसा नहीं करता है। हो सकता है कि कुछ उदाहरणों को '? Str_extract' में भी उधार लें। – Gregor
सही उत्तर यह है: प्रत्येक रेगेक्स को आधार आर रेगेक्स कार्यों के उपयोग के लिए समायोजित किया जाना चाहिए। कोई सार्वभौमिक समाधान नहीं है। –