Регулярное выражение в R для удаления части строки после последнего пробела

Я хотел бы иметь выражение gsub в R, чтобы удалить все в строке, которая появляется после последнего пробела. Например. string="Da Silva UF" должен вернуть мне "Da Silva". Какие-нибудь мысли?


person Tom Wenseleers    schedule 10.12.2013    source источник


Ответы (2)


Вы можете использовать следующее.

string <- 'Da Silva UF'
gsub(' \\S*$', '', string)

[1] "Da Silva"

Объяснение:

            ' '
\S*         non-whitespace (all but \n, \r, \t, \f, and " ") (0 or more times)
  $         before an optional \n, and the end of the string
person hwnd    schedule 10.12.2013

Использование привязки $:

> string = "Da Silva UF"
> gsub(" [^ ]*$", "", string)
[1] "Da Silva"
person falsetru    schedule 10.12.2013