如何获得我们想要的任何字符串?

时间:2018-12-14 06:22:26

标签: r regex string

字符串如下所示:

s <- "12N10-3A 12N10-3A-1 12N10-3A-2 YB10L-A2"

我可以得到第二个字符串以外的字符串。

gsub("\\s.*","",s) #12N10-3A
gsub(".*\\s","",s) #YB10L-A2
gsub(".*\\s.*\\s(.*).*\\s(.*)","\\1",s) #12N10-3A-2

如何从s获取第二个字符串,每行代码的简短方法是什么?我尝试了在regex101.com

中学到的知识

2 个答案:

答案 0 :(得分:1)

只需使用strsplit

items <- strsplit(s, "\\s+")[[1]]

如果要访问最后一项,则只需使用:

items[4]

[1] "YB10L-A2"

如果您真的想使用sub隔离最后一项,那么这是一种方法:

sub(".*\\s+", "", s)

答案 1 :(得分:1)

我们可以使用stri_extract_last中的stringi

library(stringi)
stri_extract_last(s,  regex = '\\S+')
#[1] "YB10L-A2"

或使用word中的stringr

library(stringr)
word(s, 4)
#[1] "YB10L-A2"