如何在一个字符串中提取以特定字符开始和结束的子字符串?
问题描述:
比如我有以下字符串:如何在一个字符串中提取以特定字符开始和结束的子字符串?
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中做到这一点?谢谢
答
这里是一个stringr库解决方案:
str_match_all(sample, "I am.*?;")
#[[1]]
# [,1]
#[1,] "I am a good guy;"
#[2,] "I am a cool dude;"
纵梁具有与从分裂处理字符串和提取信息的几个非常强大的功能。
+0
非常好知道,谢谢分享。 – Mohammad
答
您可以使用正则表达式。例如
regmatches(sample, gregexpr("I am [^;]+;", sample))
# [[1]]
# [1] "I am a good guy;" "I am a cool dude;"
请注意,由于每个字符串可以有多个匹配,所以R返回一个向量列表。请注意,当你去处理结果。
答
我们可以使用str_extract_all
library(stringr)
str_extract_all(sample, "I am [^;]+(?=;)")[[1]]
#[1] "I am a good guy" "I am a cool dude"
你需要的是一个R编程riight? – rUCHit31
@ rUCHit31yes。对困惑感到抱歉。我将编辑这个问题,并清楚地表明 – Mohammad