R中的字符串模式
我有如下字符串列表:“/home/ricardo/MultiClass/data//F10/1036.txt” 给我:R中的字符串模式,r,string,R,String,我有如下字符串列表:“/home/ricardo/MultiClass/data//F10/1036.txt” 给我: #> [[1]] [1] "" "home" "ricardo" "MultiClass" "data" #> "" "F10" "1036.txt" 我怎么能只保持第七的位置 #> "F10" 如果要在/之后提取一个或多个字符,直到第一个/或字符串末尾,请使用 > libr
#> [[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"
详细信息:
-字符串的开头^
-尽可能多的任意0个字符*
-斜杠(上一个模式是贪婪的,字符串中只有最后一个)/
-捕获组#1匹配除([^/]*)
/
-最后一个斜杠/
-除[^/]*
/
-字符串结束$
gret
来从字符串中提取模式
gret <-function(pattern,text,ignore.case=TRUE){
regmatches(text,regexpr(pattern,text,perl=TRUE,ignore.case))
gret[1]“F10”
使用stringr
的函数word
library(stringr)
word(sub('.*//', '', s), 1, sep = '/')
#[1] "F10"
#where
s <- '/home/ricardo/MultiClass/data//F10/1036.txt'
库(stringr)
单词(sub('./','',s),1,sep='/')
#[1] “F10”
#在哪里
你怎么能识别它?因为它前面有/
?如果是按位置,那么strsplit(cls[1],split=“/”[[1]]][7]
应该可以工作。那么basename(dirname(cls[1])
strsplit
是一个基本的R函数,而不是stringr库中的函数。所有这些都是为了帮助。
gret <-function(pattern,text,ignore.case=TRUE){
regmatches(text,regexpr(pattern,text,perl=TRUE,ignore.case))
gsub("data|/*","",gret("(?=data/).*(?<=/)","/home/ricardo/MultiClass
/data//F10/1036.txt"))
#>[1] "F10"
library(stringr)
word(sub('.*//', '', s), 1, sep = '/')
#[1] "F10"
#where
s <- '/home/ricardo/MultiClass/data//F10/1036.txt'