如何基于分隔符"/"翻转字符串两侧内容?
基于分隔符"/"翻转字符串两侧内容
输入向量:
st = c( "50/90", "cat/dog,sheep", "08/25,000")
期望输出:
c("90/50", "dog,sheep/cat", "25,000/08" )
方法1:使用stringr包的正则替换
借助stringr包的str_replace(),通过正则捕获组快速实现翻转:
library(stringr) str_replace(st, "(.*)/(.*)", "\\2/\\1")
正则(.*)/(.*)会分别捕获/前后的全部内容,\\2/\\1将两组内容交换位置后拼接。
方法2:Base R原生实现
无需额外包,用strsplit拆分后重组:
sapply(strsplit(st, "/"), function(x) paste(rev(x), collapse = "/"))
strsplit把每个字符串按/拆分为子元素列表,rev翻转每个子列表的元素顺序,最后用paste重新拼接成目标格式。
内容的提问来源于stack exchange,提问作者Ahdee
相关产品推荐
相关产品推荐

