从以下字符串中仅提取数字 2007 的好方法是什么:
some_string <- "1_2_start_2007_3_end"
在我的情况下检测年份编号的模式是:
我对使用正则表达式很陌生。我尝试了以下方法:
regexp <- "_+[0-9]+_"
names <- str_extract(files, regexp)
但这并没有考虑到总是有 4 位数字并输出下划线。
最佳答案
我们可以使用 regex lookbehind 指定 _
并提取后面的 4 位数字
library(stringr)
str_extract(some_string, "(?<=_)\\d{4}")
#[1] "2007"
如果模式在 4 位数之前和之后都显示
-
,那么也使用正则表达式先行str_extract(some_string, "(?<=_)\\d{4}(?=_)")
#[1] "2007"
关于r - 从由特殊字符包围的字符串中提取年份数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48802732/