2016-11-11 45 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)