Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
第一个完整的*.zip文件名的stringr正则表达式_R_Stringr - Fatal编程技术网

第一个完整的*.zip文件名的stringr正则表达式

第一个完整的*.zip文件名的stringr正则表达式,r,stringr,R,Stringr,我有以下代码: test_zip_col <- "daily_44201_2015.zip259,151 Rows2,958 KBAs of 2015-11-27" test_zip_col2 <- str_extract(test_zip_col, '^*\\.zip$') test_zip_col test_zip_col2 谁能解释一下如何修改我的stru extract代码,使其不产生NA值?库(stringr) library(strin

我有以下代码:

test_zip_col          <- "daily_44201_2015.zip259,151 Rows2,958 KBAs of 2015-11-27"
test_zip_col2         <- str_extract(test_zip_col, '^*\\.zip$')
test_zip_col
test_zip_col2
谁能解释一下如何修改我的
stru extract
代码,使其不产生
NA
值?

库(stringr)
library(stringr)
test_zip_col          <- "daily_44201_2015.zip259,151 Rows2,958 KBAs of 2015-11-27"
loc<-str_locate(test_zip_col,".zip") ## Locate the ".zip"
str_sub(test_zip_col,start=1, end=loc[,2]) # Substring 

[1] "daily_44201_2015.zip"

我们可以使用
sub

sub('(.*\\.zip).*', '\\1', test_zip_col)
#[1] "daily_44201_2015.zip"

使用
stringi
首先是
stringi::stri\u extract\u(test\u zip\u col,regex=“.\\\.zip”)
Hi-谢谢。根据你的建议,我修改并使用了
stringr::str\u extract(string=test\u zip\u col,pattern=“.\\\.zip”)
,效果很好。如果您将此作为答案提交,我可以接受,因为这是提供的解决方案中最简单的一个,在一个字符串中包含多个zip文件的情况下,它不会为您提供第一个zip文件。它与stringi一起工作,因为有一个特殊的函数来提取第一个匹配项,而不是在stringr中。我可以只对第一个匹配项进行子集,对吗?
sub('(.*\\.zip).*', '\\1', test_zip_col)
#[1] "daily_44201_2015.zip"