2015-07-21 11 views
5

मैं एक वाक्य में दो शब्दों के बीच पाठ प्राप्त करने की कोशिश कर रहा हूं।
उदाहरण के लिए वाक्य है -आर में दो शब्दों के बीच पाठ कैसे प्राप्त करें?

x <- "This is my first sentence" 

अब मैं This और first जो is my है के बीच पाठ चाहते हैं। मैंने आर से grep, grepl, pmatch, str_split जैसे विभिन्न कार्यों की कोशिश की है। हालांकि, मैं वही नहीं प्राप्त कर सकता जो मैं चाहता हूं।

यह निकटतम है जो मैं gsub के साथ पहुंचा हूं।

gsub(".*This\\s*|first*", "", x) 

उत्पादन यह देता है

[1] "is my sentence" 

हकीकत में, मैं क्या जरूरत है केवल

[1] "is my" 

किसी भी मदद की सराहना की जाएगी है।

उत्तर

4

आप के बाद 'पहली'

gsub('^.*This\\s*|\\s*first.*$', '', x) 
#[1] "is my" 
+1

धन्यवाद @akrun। मुझे पता था कि यह कुछ आसान है लेकिन मैं regex के साथ अच्छा नहीं हूँ। धन्यवाद। –

8

एक और दृष्टिकोण qdapRegex पैकेज से rm_between का उपयोग कर शून्य या अधिक वर्णों का मिलान करने के अंत में .* की जरूरत है।

library(qdapRegex) 
rm_between(x, 'This', 'first', extract=TRUE)[[1]] 
# [1] "is my" 
संबंधित मुद्दे