2016-04-17 6 views
0

ich eine Zeichenfolge wie diese:alles in string entfernt bis nach vorn zum letzten Slash

sub('/^(.*[\\\/])/', "", the_string) 
:

"filename.csv" 

Ich habe versucht, dies:

"vehicles/vehicle_type/filename.csv" 

Ich möchte nur mit gelassen werden

Aber eine "unerkannte Escape in Zeichenfolge" Fehler

+0

Weiß nicht "r", aber wenn Sie wirklich ersetzen möchten, verwenden Sie ein Sub mit diesem '/^(?: [^ \ /] * \ /) + /'. Wenn Sie nur am Ende übereinstimmen möchten, benutzen Sie dieses '/ [^ \ /] + $ /'. – sln

Antwort

16

Um das Ende eines Dateipfads zu erfassen, können Sie einfach basename() verwenden.

x <- "vehicles/vehicle_type/filename.csv" 
basename(x) 
# [1] "filename.csv" 

Oder wenn Sie möchten, dass mit regex fortzusetzen, stellen Sie Ihren sub() Aufruf

sub(".*/", "", x) 
# [1] "filename.csv" 

.* alles entfernt, so .*/ alles entfernt bis einschließlich der letzten / (weil die vorherige war im "alles" enthalten).

Verwandte Themen