简体   繁体   English

在特定单词后提取字符串

[英]Extracting string after specific word

I tried looking around for a similar question, but did not find any.我试图四处寻找类似的问题,但没有找到任何问题。 I'm trying to extract the string immediately after a specific word.我试图在特定单词之后立即提取字符串。

I have a bunch of strings, but I only want to extract the string after "TaskItem:" .我有一堆字符串,但我只想在"TaskItem:"之后提取字符串。 I tried using str_extract but was not able to get the output I need.我尝试使用str_extract但无法获得我需要的 output。

Here's some sample data:以下是一些示例数据:

sample <- structure(c(14L, 10L, 16L, 9L), .Label = c("", "crash: ae01531510acf7b30821ce9d3d28db889e6b1504; manufacture: samsung; cpu: arm64-v8a; opengl: 3; os: Android; orientation: Landscape; nonfatal: false; root: false; online: true; muted: false; background: false; app_version: 1.1.2; ram_current: 2468; ram_total: 3644; disk_current: 4649; disk_total: 4851; bat: 100; run: 1337;", 
"crash: ae01531510acf7b30821ce9d3d28db889e6b1504; manufacture: samsung; cpu: arm64-v8a; opengl: 3; os: Android; orientation: Landscape; nonfatal: false; root: false; online: true; muted: false; background: false; app_version: 1.1.2; ram_current: 2499; ram_total: 3644; disk_current: 4649; disk_total: 4851; bat: 100; run: 221;", 
"crash: ae01531510acf7b30821ce9d3d28db889e6b1504; manufacture: samsung; cpu: arm64-v8a; opengl: 3; os: Android; orientation: Landscape; nonfatal: false; root: false; online: true; muted: true; background: false; app_version: 1.1.2; ram_current: 2559; ram_total: 3644; disk_current: 4649; disk_total: 4851; bat: 100; run: 1215;", 
"crash: ae01531510acf7b30821ce9d3d28db889e6b1504; manufacture: samsung; cpu: arm64-v8a; opengl: 3; os: Android; orientation: Landscape; nonfatal: false; root: false; online: true; muted: true; background: false; app_version: 1.1.2; ram_current: 2627; ram_total: 3644; disk_current: 4649; disk_total: 4851; bat: 100; run: 235;", 
"crash: ae01531510acf7b30821ce9d3d28db889e6b1504; manufacture: samsung; cpu: arm64-v8a; opengl: 3; os: Android; orientation: Landscape; nonfatal: false; root: false; online: true; muted: true; background: false; app_version: 1.1.2; ram_current: 2655; ram_total: 3644; disk_current: 4649; disk_total: 4851; bat: 100; run: 115;", 
"crash: ae01531510acf7b30821ce9d3d28db889e6b1504; manufacture: samsung; cpu: arm64-v8a; opengl: 3; os: Android; orientation: Landscape; nonfatal: false; root: false; online: true; muted: true; background: false; app_version: 1.1.2; ram_current: 2656; ram_total: 3644; disk_current: 4649; disk_total: 4851; bat: 100; run: 1681;", 
"segment: Android; name: CalendarDetailActivity; visit: 1;", 
"segment: Android; name: MainActivity; visit: 1;", "segment: Android; name: OnBoardingActivity; visit: 1;", 
"segment: Android; name: SchedulePreferenceActivity; visit: 1;", 
"segment: Android; name: SplashActivity; start: 1; visit: 1;", 
"segment: Android; name: SplashActivity; visit: 1;", "TaskItem: CURATED_CONTENT;", 
"TaskItem: SCHEDULE_PREFERENCES;", "TaskItem: SCHEDULE;"), class = "factor")

So, in the above example, I would just like "TaskItem: SCHEDULE_PREFERENCES;"所以,在上面的例子中,我只想"TaskItem: SCHEDULE_PREFERENCES;" to return "SCHEDULE_PREFERENCES" (removing the semicolon would be great but not important) and "TaskItem: SCHEDULE;"返回"SCHEDULE_PREFERENCES" (删除分号会很好但并不重要)和"TaskItem: SCHEDULE;" to return "SCHEDULE" ;返回"SCHEDULE" the other two can be NA .另外两个可以是NA Any suggestions would be great.任何建议都会很棒。 Thank you!谢谢!

We can use str_extract with a regex lookaround我们可以将str_extract与正则表达式环视一起使用

library(stringr)
str_extract(sample, "(?<=TaskItem:\\s)[^;]+")
#[1] "CURATED_CONTENT" NA                "SCHEDULE"        NA      

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM