如何提取rownames中最后一个|后的字符串?附已有匹配指定符号前内容的代码
提取最后一个|后的字符串解决方案
嘿,这个需求很容易搞定,而且思路和你现有的代码逻辑是相通的!
你需要的是匹配最后一个|之前的所有内容,然后把它们替换为空,这样就能得到|之后的目标部分了。正则里的.*是贪婪匹配模式,会自动找到最后一个符合条件的分隔符,刚好能满足你的需求。
实现代码
# 定义示例输入 x <- "d__Bacteria|p__Proteobacteria|c__Gammaproteobacteria|o__Chromatiales|f__Woeseiaceae|g__Woeseia" # 提取最后一个|之后的字符串 result <- gsub(".*\\|", "", x) print(result)
输出结果
[1] "g__Woeseia"
代码解释
.*\\|:.*匹配任意数量的任意字符(贪婪模式确保定位到最后一个|),\\|是转义后的竖线符号(因为|在正则里是特殊字符,必须用反斜杠转义才能表示普通的竖线)。- 将匹配到的这部分内容替换为空字符串,剩下的就是最后一个
|之后的目标内容了。
内容的提问来源于stack exchange,提问作者user2300940
相关产品推荐
相关产品推荐

