当前位置:  开发笔记 > 编程语言 > 正文

特定角色的strsplit,证明该角色不应该被特定角色所遵循

如何解决《特定角色的strsplit,证明该角色不应该被特定角色所遵循》经验,为你挑选了1个好方法。



1> Cath..:

您可以使用正则表达式a(?=[^b])中的"a not follow b"模式拆分字符串strsplit:

split_str <- strsplit("abcgualoo87ahhabta", "a(?=[^b])", perl=TRUE)[[1]]
split_str
#[1] "abcgu"  "loo87"  "hhabta"

分裂模式的解释: lookahead((?=))与"向前看"模式一起使用,除了ab([^b])之外的任何东西(^符号表示否定).为了使前瞻工作(被解释),我们需要将参数设置perlTURE

然后你可以在分割部分的末尾添加删除的"a",除了最后一个:

split_str <- paste0(c(rep("a", length(split_str)-1), ""))
#[1] "abcgua" "loo87a" "hhabta"

@nicola在评论中提供的一个很好的一步替代方案:

split_str <- strsplit("abcgualoo87ahhabta","(?<=a)(?!b)", perl=TRUE)[[1]]
#[1] "abcgua" "loo87a" "hhabta"

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有