2016-08-03 63 views
0

比如我有以下字符串:如何在一个字符串中提取以特定字符开始和结束的子字符串?

sample = "I am a good guy; he is cool; I am a cool dude; let's do it!" 

我需要找到与“我”和结束开始子“;”所以输出应该是这样的:

I am a good guy 
I am a cool dude 

任何建议如何在R中做到这一点?谢谢

+0

你需要的是一个R编程riight? – rUCHit31

+0

@ rUCHit31yes。对困惑感到抱歉。我将编辑这个问题,并清楚地表明 – Mohammad

回答

1

这里是一个stringr库解决方案:

str_match_all(sample, "I am.*?;") 
#[[1]] 
#  [,1]    
#[1,] "I am a good guy;" 
#[2,] "I am a cool dude;" 

纵梁具有与从分裂处理字符串和提取信息的几个非常强大的功能。

+0

非常好知道,谢谢分享。 – Mohammad

4

您可以使用正则表达式。例如

regmatches(sample, gregexpr("I am [^;]+;", sample)) 
# [[1]] 
# [1] "I am a good guy;" "I am a cool dude;" 

请注意,由于每个字符串可以有多个匹配,所以R返回一个向量列表。请注意,当你去处理结果。

0

我们可以使用str_extract_all

library(stringr) 
str_extract_all(sample, "I am [^;]+(?=;)")[[1]] 
#[1] "I am a good guy" "I am a cool dude" 
相关问题