r - R 中的字符串模式

标签 r string

我有一个字符串列表,如下:“/home/ricardo/MultiClass/data//F10/1036.txt”

>     library(stringr)   
>     strsplit(cls[1], split= "/")

给我:

#> [[1]] [1] ""           "home"       "ricardo"    "MultiClass" "data"  
#> ""           "F10"        "1036.txt"

如何才能只保住第七名的位置?

#> "F10"

最佳答案

如果你想提取 // 之后的一个或多个字符直到第一个/或字符串结尾使用

> library(stringr) 
> s <- "/home/ricardo/MultiClass/data//F10/1036.txt"
> str_extract(s, "(?<=//)[^/]+")
[1] "F10"

(?<=//)[^/]+正则表达式模式将找到前面有 2 个斜杠的位置(请参阅 (?<=//) ),然后匹配除 / 之外的一个或多个字符(参见[^/]+)。

基本 R 解决方案 sub看起来像

> sub("^.*/([^/]*)/[^/]*$", "\\1", s)
[1] "F10"

详细信息:

  • ^ - 字符串开头
  • .* - 任何 0+ 尽可能多的字符
  • / - 斜杠(字符串中最后一个,因为前一个模式是贪婪的)
  • ([^/]*) - 捕获组 #1 匹配除 / 之外的任何 0+ 个字符
  • / - 最后一个斜杠
  • [^/]* - 除 / 之外的任何 0+ 个字符
  • $ - 字符串结尾。

关于r - R 中的字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096181/

相关文章:

java - 从 json 对象中提取值以达到 Intent

string - 重复加倍字符串的时间复杂度是多少?

string - 在 R 中提取混合数字和字符的字符串的数字部分

r - 根据多个引用日期计算每个客户的事件发生次数

r - kableExtra rmarkdown 表格 - 对齐分组行标签和脚注

C将字符串拆分为数组仅输出第一个标记

c - 在结构中初始化 main vs 中的 char 数组

r - 如何在所有方面对条形进行排序?

r - 按行计算列数,避免熔化/聚集

带 lapply 的稳健线性回归