最后一个特殊字符的gsub

问题描述 投票:0回答:1

我想得到两个字符串,它们出现在最后一个特殊字符(即_)之前和之后。

one <- c("TRANS-PLATINUM_(II)_DIAMMINE_DICHLORIDE_kidney")

我期待结果

string1 = TRANS-PLATINUM_(II)_DIAMMINE_DICHLORIDE

string2 = kidney
r regex split gsub
1个回答
2
投票

我们可以用

scan(text=sub("(.*)_([^_]+)$", "\\1,\\2", one), sep=",", what ='', quiet = TRUE)
#[1] "TRANS-PLATINUM_(II)_DIAMMINE_DICHLORIDE" "kidney"   

或仅使用strsplit

strsplit(one, "_(?=[^_]+$)", perl = TRUE)[[1]]
strsplit(two, "_(?=[^_]+$)", perl = TRUE)[[1]]
#[1] "N,N-DIMETHYLFORMAMIDE" "kidney"      

data

two <- "N,N-DIMETHYLFORMAMIDE_kidney"
© www.soinside.com 2019 - 2024. All rights reserved.