如何像从Python的rsplit()一样从右向左分割字符串?

抄送

假设一个向量:

xx.1 <- c("zz_ZZ_uu_d", "II_OO_d")

我想从最右边拆分一个新矢量,并且只拆分一次。预期结果将是:

c("zz_ZZ_uu", "d", "II_OO", "d").

就像python的rsplit()功能一样。我现在的想法是扭转字符串,并与分裂str_split()stringr

有更好的解决方案吗?

更新
这是我的解决方案返回n拆分,具体取决于stringr和stringi。有人提供具有基本功能的版本会很好。

rsplit <- function (x, s, n) {
  cc1 <- unlist(stringr::str_split(stringi::stri_reverse(x), s, n))
  cc2 <- rev(purrr::map_chr(cc1, stringi::stri_reverse))
  return(cc2)
}
朱利叶斯·维诺拉(Julius Vainora)

负前瞻:

unlist(strsplit(xx.1, "_(?!.*_)", perl = TRUE))
# [1] "zz_ZZ_uu" "d"        "II_OO"    "d"     

哪里a(?!b)说找到这样一个a,后面没有一个b在这种情况下.*_,无论多远(.*)都不应再有_

但是,推广这种想法似乎并不容易。首先,请注意,可以使用来将其重写为正向_(?=[^_]*$)(查找,_后跟除以外的任何字符_,这里$表示字符串的结尾)。那么一个不太优雅的概括是

rsplit <- function(x, s, n) {
  p <- paste0("[^", s, "]*")
  rx <- paste0(s, "(?=", paste(rep(paste0(p, s), n - 1), collapse = ""), p, "$)")
  unlist(strsplit(x, rx, perl = TRUE))
}

rsplit(vec, "_", 1)
# [1] "a_b_c_d_e_f" "g"           "a"           "b"          
rsplit(vec, "_", 3)
# [1] "a_b_c_d" "e_f_g"   "a_b"    

例如,如果n=3此函数使用_(?=[^_]*_[^_]*_[^_]*$)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何像Python一样在Google Apps脚本中切片字符串?

来自分类Dev

如何像Python一样在Google Apps脚本中切片字符串?

来自分类Dev

Python 3-如何像直接替换字符串一样执行字符串?

来自分类Dev

像$“ Hello World”一样封装的字符串。

来自分类Dev

像字符串一样解析HTML属性

来自分类Dev

像文件一样解析Fortran字符串

来自分类Dev

如何在Fortran中像文件一样读取字符串

来自分类Dev

如何像JavaScript中的$$一样在JavaScript中将字符串更改为Variable?

来自分类Dev

如何像c#一样在Java中实现字符串拆分方法

来自分类Dev

如何在angularjs中像C#一样编写字符串格式?

来自分类Dev

如何使用imagemagick像字符串的“ trim()”一样批量裁剪图像的空白?

来自分类Dev

如何在Fortran中像文件一样读取字符串

来自分类Dev

如何在我的视图上像字符串一样编写脚本?

来自分类Dev

如何像Ruby中的Strstr一样在Ruby中拆分字符串

来自分类Dev

如何收集必须像字符串一样格式化的数字?

来自分类Dev

如何像对象一样使用“ this”并通过字符串获取其变量/函数?

来自分类Dev

如何在hibernate中像long一样生成字符串ID?

来自分类Dev

Python-像处理字符串一样处理列表值

来自分类Dev

使python字符串等效性像SQL match一样工作

来自分类Dev

如何在iOS中像桌面一样呈现向左擦除字符⌫?

来自分类Dev

熊猫像日期一样分割字符串并重新排列为日期格式

来自分类Dev

如何打印像字符串一样的列表?

来自分类Dev

使用字符串-像真实书籍一样,如何在上部制作“小数字”?

来自分类Dev

Java如何像JavaScript的decodeURIComponent(escape(x))一样,将* abracadabra *转换回字符串?

来自分类Dev

我如何在网站中显示HTML代码和JavaScript像字符串一样

来自分类Dev

在python中,像字符串之类的“ dog”一样,诸如2013之类的整数是否被视为数组?

来自分类Dev

像分割过滤器一样分割URI查询字符串?title = php_filter&size> 2&author!= smith

来自分类Dev

像幻灯片一样从右向左对图像进行动画处理

来自分类Dev

如何在python中将字符串转换为列表 就像“ ['a']”到['a']一样

Related 相关文章

  1. 1

    如何像Python一样在Google Apps脚本中切片字符串?

  2. 2

    如何像Python一样在Google Apps脚本中切片字符串?

  3. 3

    Python 3-如何像直接替换字符串一样执行字符串?

  4. 4

    像$“ Hello World”一样封装的字符串。

  5. 5

    像字符串一样解析HTML属性

  6. 6

    像文件一样解析Fortran字符串

  7. 7

    如何在Fortran中像文件一样读取字符串

  8. 8

    如何像JavaScript中的$$一样在JavaScript中将字符串更改为Variable?

  9. 9

    如何像c#一样在Java中实现字符串拆分方法

  10. 10

    如何在angularjs中像C#一样编写字符串格式?

  11. 11

    如何使用imagemagick像字符串的“ trim()”一样批量裁剪图像的空白?

  12. 12

    如何在Fortran中像文件一样读取字符串

  13. 13

    如何在我的视图上像字符串一样编写脚本?

  14. 14

    如何像Ruby中的Strstr一样在Ruby中拆分字符串

  15. 15

    如何收集必须像字符串一样格式化的数字?

  16. 16

    如何像对象一样使用“ this”并通过字符串获取其变量/函数?

  17. 17

    如何在hibernate中像long一样生成字符串ID?

  18. 18

    Python-像处理字符串一样处理列表值

  19. 19

    使python字符串等效性像SQL match一样工作

  20. 20

    如何在iOS中像桌面一样呈现向左擦除字符⌫?

  21. 21

    熊猫像日期一样分割字符串并重新排列为日期格式

  22. 22

    如何打印像字符串一样的列表?

  23. 23

    使用字符串-像真实书籍一样,如何在上部制作“小数字”?

  24. 24

    Java如何像JavaScript的decodeURIComponent(escape(x))一样,将* abracadabra *转换回字符串?

  25. 25

    我如何在网站中显示HTML代码和JavaScript像字符串一样

  26. 26

    在python中,像字符串之类的“ dog”一样,诸如2013之类的整数是否被视为数组?

  27. 27

    像分割过滤器一样分割URI查询字符串?title = php_filter&size> 2&author!= smith

  28. 28

    像幻灯片一样从右向左对图像进行动画处理

  29. 29

    如何在python中将字符串转换为列表 就像“ ['a']”到['a']一样

热门标签

归档