2016-11-11 4 views
-1

私は、例えば、この文字列を持っている:Rで部分文字列を抽出するにはどうすればよいですか?

str1 = "UNCID_999277.TCGA-CV-7254-01A-11R-2016-07.111118_UNC11-SN627_0167_AD09WDACXX_TAGCTT.txt" 
私は、例えば、この部分文字列を抽出したいと思い

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

しかし:私は何かのリンクこれを試してみました

TCGA-CV-7254 

返信:

[1] "UNCID_999277TCGA" 

助けてくれてありがとう!

+0

'*'は前のトークンがゼロから無限に繰り返されることを意味する量子です。 Aの後にあるので、複数のAを探しています。代わりに、ワイルドカードトークン '.'で量子を指定する必要があります。 – alistaire

+0

*この部分文字列を抽出したいと思います。たとえば、*とは何ですか?要件を説明していない場合は、どうすればお手伝いできますか? –

答えて

1

あなたはほとんどそれを持っていました。最初のカッコでは、ピリオドが最初に来る必要があります(これは「任意の文字を何回でも繰り返す」という意味です)。正規表現の2番目の部分には、独自のエンドポイントも必要です。

関連する問題