2016-11-11 44 views
-1

我有这样的字符串,例如:如何提取R中的子串?

str1 = "UNCID_999277.TCGA-CV-7254-01A-11R-2016-07.111118_UNC11-SN627_0167_AD09WDACXX_TAGCTT.txt" 

我想提取该字符串,例如:

TCGA-CV-7254 

我试过的东西链接这样的:

gsub(pattern = "(*.)(TCGA*)(.*)", 
    replacement = "\\2", 
    x = nameArq) 

但退货:

[1] "UNCID_999277TCGA" 

感谢您的帮助!

+0

'*'是一个量词,表示前面的标记重复为无穷大的时间。由于它在'A'之后,它正在寻找多个'A's。您需要在通配符标记'.'上使用量词。 – alistaire

+0

*我想提取这个子字符串,例如* - 以及它有什么特别之处?如果您不解释要求,我们如何帮助您? –

回答

1

你差点没钱了。在第一个括号中,该时间段需要先到达(这意味着“重复任意次数的任何字符”)。你的正则表达式的第二部分还需要一些独特的端点。

gsub(pattern = "(.*)(TCGA.*4)(.*)", 
    replacement = "\\2", 
    x = str1)