2014-01-20 3 views
1

와 일치하는 정규 표현식은 백 슬래시를 R에서

I 다음 문자열이 : 내가 할 경우 C:\\Users\\jam\\Downloads\\tomato\\

: 나는 폴더 경로를 원하는이에서 ^(.*\\\\)([^\\\\]*)$

: C:\\Users\\jam\\Downloads\\tomato\\roja.exe 다음과 같은 정규 표현식을 grep like :

grep("^(.*\\\\)([^\\\\]*)$", "C:\\Users\\jam\\Downloads\\tomato\\roja.exe",value=TRUE) 

결과는 C:\\Users\\jam\\Downloads\\tomato\\roja.exe입니다. 예상되는 결과.

정규 표현식 개선에 대한 아이디어가 있으십니까?

+0

그냥'^ (. * \\\\) '입니다. – MElliott

+0

@MElliott nope가 작동하지 않습니다. – umbersar

답변

3

정규 표현식을 사용할 필요가 없습니다, dirname 시도 :

dirname(" C:\\Users\\jam\\Downloads\\tomato\\roja.exe") 
" C:/Users/jam/Downloads/tomato" 

basename을 파일 이름 얻을 : 나는 같은 것을 사용하는 정규 표현식을 사용

basename(" C:\\Users\\jam\\Downloads\\tomato\\roja.exe") 
[1] "roja.exe" 

편집

을 이 :

gsub('(.*)[\\](.*)','\\1' ,"C:\\Users\\jam\\Downloads\\tomato\\roja.exe") 
[1] "C:\\Users\\jam\\Downloads\\tomato" 

gsub('(.*)[\\](.*)','\\2' ,"C:\\Users\\jam\\Downloads\\tomato\\roja.exe") 
[1] "roja.exe" 
+0

도움이되지만 문제를 해결하지는 못합니다. dirname은 유효하지 않은 윈도우에 '/'문자가있는 경로를 반환합니다. – umbersar

+1

@wanderer R에서는 유효합니다. –

+0

Thanks @MatthewLundberg. Windows의 경로에있는 "/"문자는 R. – umbersar