如何在R语言中使用str_extract()提取两个字符间的数字
提取指定位置的数字
首先加载stringr包(未安装的话先运行install.packages("stringr")):
library(stringr)
使用str_extract()结合正则表达式精准提取目标数字:
a = "234 4dfd 123PUBMED 32634600\nREFERENCE" target_num <- str_extract(a, "(?<=PUBMED\\s+)\\d+(?=\\nREFERENCE)") target_num # 输出结果:[1] "32634600"
正则说明
(?<=PUBMED\\s+):后行断言,限定匹配内容必须紧跟在PUBMED及后续一个或多个空白字符之后\\d+:匹配连续的数字序列,也就是我们要提取的目标值(?=\\nREFERENCE):先行断言,限定匹配内容必须在换行符\n和REFERENCE之前
如果PUBMED与数字、数字与\nREFERENCE之间的空白数量不确定(比如可能有零个或多个),可以调整正则为:
str_extract(a, "(?<=PUBMED\\s*)\\d+(?=\\s*\\nREFERENCE)")
内容的提问来源于stack exchange,提问作者zhiwei li
相关产品推荐
相关产品推荐

