在R语言中用正则模式从字符串提取特定数字(Tidyverse方案优先)
使用Tidyverse提取目标数字
可以用stringr包(Tidyverse的核心成员之一)结合正则表达式实现,精准匹配Record: 之后、, Field之前的数字:
library(tidyverse) test <- "owidhsf 2121 .Record: 1111, Field: kjhdlksd 22 33 455" # 提取目标数字 extracted_num <- str_extract(test, "(?<=Record: )\\d+(?=, Field)") print(extracted_num) # 输出: "1111"
正则表达式说明:
(?<=Record: ):正向预查,确保匹配内容的前缀是Record:(该前缀不会被纳入提取结果)\\d+:匹配一个或多个连续数字(?=, Field):正向预查,确保匹配内容的后缀是, Field(该后缀也不会被纳入提取结果)
如果需要将提取结果转为数值类型,可追加as.numeric():
extracted_num <- str_extract(test, "(?<=Record: )\\d+(?=, Field)") %>% as.numeric()
内容的提问来源于stack exchange,提问作者ECII
相关产品推荐
相关产品推荐

