理解sub()函数中的"*"、"."、"/"语法,求解指定代码作用
解析
sub(".*/", "", path)的作用 这行是R语言里的字符串替换操作,核心功能是从完整路径里提取出最后的文件名,拆解细节如下:
sub()是R的基础字符串函数,语法为sub(匹配规则, 替换内容, 目标字符串),作用是找到目标字符串中第一个符合规则的片段,替换成指定内容。- 这里的匹配规则
.*/是正则表达式:.*是贪婪匹配,代表"任意长度的任意字符"(除换行符);/就是路径里的分隔符;- 合起来
.*/会匹配从字符串开头到**最后一个/**的所有内容(因为贪婪匹配会尽可能多的抓取字符,直到碰到最后一个/)。
- 替换内容是空字符串
"",相当于把匹配到的那段路径前缀直接删掉。
用你的示例路径来看:
原路径:/Volumes/Elements/GTEx-v8_WGCNA/Annotations/signed/Adipose-Subcutaneous_0.8125Pathway_Enrichment_all_results.xls.*/会匹配到/Volumes/Elements/GTEx-v8_WGCNA/Annotations/signed/,替换为空后,就得到了文件名:Adipose-Subcutaneous_0.8125Pathway_Enrichment_all_results.xls。
顺带提一句,你后续的sub("Pathway_Enrichment_all_results.xls.*", "", name)是接着把文件名末尾的固定后缀删掉,最终得到Adipose-Subcutaneous_0.8125。
内容的提问来源于stack exchange,提问作者cgill22
相关产品推荐
相关产品推荐

