检索文件名的一部分

用户名

我有许多具有以下格式的文件:

sub_(number 1 to 60)_ sess_(number 1, 2, or 3)_ (some letters)_ DDMMMYYYY_(some number with either 3 or 4 digit).txt

例如:

sub_41_sess_2_ABCxyz_23Feb2016_2932.txt

我只想检索'sess_'部分后面的部分'(1、2或3)',我认为sub()函数可以返回所有这些数字。在这里这里都引用了这些URL

这是我尝试的代码,无法正常工作:

dir <- "path/"
filelist = list.files(path = dir, pattern = ".*.txt")
filelist

for (f in filelist) {

    sess_id <- sub("^(sub_[1-60])^(_sess_)(1 |2 |3)^.*","\\1",c(f), perl = TRUE)

}
sess_id

返回的是一个单个文件名,如下所示:

[1] "subject_9_4Feb2016_1611.txt"

我期望如下所示,因为我需要每个sess_id属性都是上述总体文件格式的文件属性。

[1] "1" or [1] "2" 
阿克伦

为此,我们可以gsub通过匹配所有字符,直到sess其后跟_|以开头的字符,_大写字母,后跟字符(.*)直到字符串($的末尾,然后替换为来做到这一点''

gsub('^.*sess\\_|\\_[A-Z]+.*$', '', str1)
#[1] "2"

或使用str_extract,它将更加紧凑。默认情况下,str_extract仅提取匹配的第一个匹配项。在这里,我们提取\\d+正则表达式环顾四周((?<=sess_))之后的数字)。

library(stringr)
str_extract(str1, '(?<=sess_)\\d+')
#[1] "2"

数据

str1 <- "sub_41_sess_2_ABCxyz_23Feb2016_2932.txt")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检索文件名的一部分

来自分类Dev

获取文件名的一部分

来自分类Dev

提取文件名的一部分

来自分类Dev

剥离文件名的一部分

来自分类Dev

Powershell根据文件名的一部分移动文件

来自分类Dev

如何在Java中提取CSV文件的文件名的一部分

来自分类Dev

如何在Java中提取CSV文件的文件名的一部分

来自分类Dev

Android-使用文件名的一部分检查文件是否存在

来自分类Dev

删除文件夹中所有文件名的一部分?

来自分类Dev

重命名文件,删除文件名bash脚本的一部分

来自分类Dev

PHP使用已知文件名的一部分移动文件

来自分类Dev

合并大量文件,仅包含文件名的一部分

来自分类Dev

在文件的标题中插入文件名的一部分

来自分类Dev

根据文件名的一部分搜索和移动文件

来自分类Dev

仅使用文件名的一部分从文件名创建文件夹

来自分类Dev

JMeter预处理变量作为报告文件名的一部分

来自分类Dev

重击:替换文件名的一部分

来自分类Dev

bash删除文件名的一部分

来自分类Dev

更改文件名grep的一部分或重命名

来自分类Dev

使用basename捕获导致错误的文件名值的一部分

来自分类Dev

如何使用bash脚本删除文件名的一部分

来自分类Dev

在Java中将文件名的一部分与字符串进行比较

来自分类Dev

如何在骆驼XML路由中删除文件名的一部分

来自分类Dev

如何在bash中递归替换文件名的一部分

来自分类Dev

使用node.js脚本重命名文件名的一部分

来自分类Dev

重命名Linux中文件名的第一部分?

来自分类Dev

获取文件名(如果有一部分)-PHP

来自分类Dev

如何使用bash脚本删除文件名的一部分

来自分类Dev

查找文件名的一部分

Related 相关文章

热门标签

归档