2015-07-21 11 views
5

Metni iki sözcük arasında bir cümle içinde almaya çalışıyorum.
Örneğin cümledir - R kelimesi iki kelimelik metin arasında nasıl bulunur?

x <- "This is my first sentence" 

Şimdi This ve is my olduğunu first arasında metin istiyorum. R gibi çeşitli işlevleri denedim grep, grepl, pmatch, str_split. Ancak, tam olarak istediğimi alamadım.

Bu, gsub ile ulaştığım en yakın nokta.

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

o verir çıkış sadece

[1] "is my" 

Herhangi bir yardım mutluluk duyacağız olduğunu ne gerek Gerçekte

[1] "is my sentence" 

vardır.

cevap

4

Sen 'ilk'

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

Teşekkür ederiz @akrun. Basit bir şey olduğunu biliyordum ama normal ifadelerle iyi değilim. Teşekkür ederim. –

8

qdapRegex paketinden rm_between kullanarak başka bir yaklaşım sonra sıfır veya daha fazla karakter maç için sonunda .* gerekir.

library(qdapRegex) 
rm_between(x, 'This', 'first', extract=TRUE)[[1]] 
# [1] "is my" 
İlgili konular