2016-11-11 3 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

'*'는 앞의 토큰이 0에서 무한대로 반복되는 것을 의미하는 한정 기호입니다. 'A'이후이므로 복수 A를 찾고 있습니다. 대신 와일드 카드 토큰'.'에 한정 기호가 필요합니다. – alistaire

+0

*이 하위 문자열을 추출하고 싶습니다. 예를 들어 * - 그리고 그것에 대해 구체적으로 무엇입니까? 요구 사항을 설명하지 않으면 어떻게 도와 드릴까요? –

답변

1

거의 들었습니다. 첫 번째 괄호에서는 마침표가 먼저 와야합니다 (즉, "임의의 문자를 여러 번 반복"을 의미). 또한 정규 표현식의 두 번째 부분에 대한 고유 한 끝점이 필요합니다.

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