2016-08-03 101 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" 
相關問題