获取字符串的最后一部分
get last part of a string
我想获取变量的最后一个子串(下划线后的最后一部分),在本例中:"myvar".
x = "string__subvar1__subvar2__subvar3__myvar"
我的尝试导致匹配从第一个子字符串开始,例如
library(stringr)
str_extract(x, "__.*?$)
我如何在 R 中执行此操作?
你可以这样做:
library(stringr)
str_extract(x,"[a-zA-Z]+$")
编辑:
也可以使用环视功能:str_extract(x,"(?=_*)[a-zA-Z]+$")
同样来自 baseR
regmatches(x,gregexpr("[a-zA-Z]+$",x))[[1]]
来自文档 ?regex
:
The caret ^ and the dollar sign $ are metacharacters that respectively
match the empty string at the beginning and end of a line.
你可以做到
sub('.*\__', '', x)
这行得通吗?抱歉,希望我能正确理解您的问题。
substr(x,gregexpr("_",x)[[1]][length(gregexpr("_",x)[[1]])]+1,nchar(x))
[1] "myvar"
我想获取变量的最后一个子串(下划线后的最后一部分),在本例中:"myvar".
x = "string__subvar1__subvar2__subvar3__myvar"
我的尝试导致匹配从第一个子字符串开始,例如
library(stringr)
str_extract(x, "__.*?$)
我如何在 R 中执行此操作?
你可以这样做:
library(stringr)
str_extract(x,"[a-zA-Z]+$")
编辑:
也可以使用环视功能:str_extract(x,"(?=_*)[a-zA-Z]+$")
同样来自 baseR
regmatches(x,gregexpr("[a-zA-Z]+$",x))[[1]]
来自文档 ?regex
:
The caret ^ and the dollar sign $ are metacharacters that respectively match the empty string at the beginning and end of a line.
你可以做到
sub('.*\__', '', x)
这行得通吗?抱歉,希望我能正确理解您的问题。
substr(x,gregexpr("_",x)[[1]][length(gregexpr("_",x)[[1]])]+1,nchar(x))
[1] "myvar"