Удаление множественных пробелов и пробелы, используя gsub


Как удалить несколько пробелов и конечных пробелов, используя только 1 gsub? Я уже сделал эту функцию trim <- function(x) gsub(' {2,}',' ',gsub('^ *| *$','',x)), но я пытаюсь переписать ее только с 1 gsub.

На самом деле, я хочу lean, как сопоставить что-то, основанное на том, что после/до него, с gsub. В этом примере мне нужно сопоставить все пространства, которые предшествуют одному пространству, и заменить их на "

1 6

1 ответ:

Используйте положительный lookbehind, чтобы увидеть, предшествует ли текущее пространство пространству:

^ *|(?<= ) | *$

Смотрите его здесь в действии: http://regex101.com/r/bJ1mU0